12

I printed an important receipt and quit Safari, only to learn the job never printed because we no longer own the network printer the computer was expecting to find. Thus, the only remaining copy of this information is in the print queue.

How do I salvage the information waiting to be printed so I can use it again?

Note: Dragging the enqueued item from the non-existant printer's queue to an existant printer's queue will print the item. I would like to know how to save the file waiting to be printed so it can be used again.

  • to what printer did you send it to ? – Ruskes Feb 28 '15 at 19:41
  • @Buscar웃 to a network printer that had been replaced. The drivers for the new printer were already configured properly, but not selected as default. – ProductionValues Mar 5 '15 at 13:16
7

The CUPS web interface would allow you to direct the print job to another printer.

However it's possible to capture a PDF file from the CUPS queue:

/private/var/spool/cups  
total 472  
drwx--x---  24 root  _lp      816 Mar  1 14:30 ./  
-rw-------   1 root  _lp     4403 Mar  1 14:30 c00025  
drwxrwxr-x  13 root  _lp      442 Mar  1 14:30 cache/  
-rw-r-----   1 root  _lp    86110 Mar  1 14:28 d00025-001  
drwxrwx--T   5 root  _lp      170 Mar  1 14:28 tmp/  
-rw-------   1 root  _lp     4391 Feb 25 12:13 c00024  
root@Macbook: file d00025-001
d00025-001: PDF document, version 1.3

You can copy (in this example) d00025-001 to somewhere and rename it with a pdf extension (n this case), after fixing permissions, ownership and group you can open it.

The matching file starting with c is the cover sheet. You should be able to recover the job in the the printers native language from the tmp directory:

/var/spool/cups/tmp
total 288
drwxrwx--T   5 root  _lp     170 Mar  1 14:34 ./
drwx--x---  28 root  _lp     952 Mar  1 14:50 ../
-rw-r-----   1 root  _lp    1234 Mar  1 14:28 17ed254faebef
-rw-r-----   1 root  _lp    1193 Mar  1 14:34 17ed254fece74
-rw-------   1 root  _lp  136512 Mar  1 14:28 17f025500d2e2
david_koontz@Macbook: file *2
17f025500d2e2: PostScript document text conforming DSC level 3.0, Level 2

This all done with an aging HPLJ-5000N LaserJet specified as a PostScript printer, the print job one page out of an ODT file (OpenOffice).

The original (in this case ODT) file isn't kept in the print system, which would force you to format it again.

  • 1
    Don't forget to make an lprm job_ID at the end of the rescue operation, so as to clean the printer queue. – daniel Azuelos Mar 1 '15 at 17:28
  • 1
    In case anyone else runs into this -- in my case the d00000-001 file was a PostScript document instead of a PDF, so I had to add ".ps" instead of ".pdf" for it to open in Preview. – Jack Cushman Apr 3 '18 at 14:59
6

To find and retrieve the print jobs:

Use the go to Folder in Finder and paste this /private/var/spool/.

Now right- Click on the CUPS folder and use Get Info to change the permission.

If you have files waiting to be printed then it looks like this:

enter image description here

It is the file name beginning with "d" that you want to copy.

  • If you're wondering what that "d" file is, it's a .ps file (at least in my case), though it may also be a .pdf or .zip of a .pdf file according to other answers. Use file to see what it is: file d00167-001: d00167-001: PostScript document text conforming DSC level 3.1, Level 2 – Arel Apr 25 at 15:55
5

At some point the default for saving print jobs was changed in OS X. Likely it was earlier in El Capitan, but as of 10.11.6 I'm seeing the "d0000" files noted above are not saved once a job prints anymore. You can return this functionality by typing in Terminal

sudo cupsctl PreserveJobFiles=Yes

Upon doing this the "d" file matching the "c" file will be saved in /var/spool/cups exactly as described above. This file can be copied to your Desktop but if you want to view it you first need to add the .zip extension and unzip it and then you can add .pdf to the unzipped file of the same name and it can be viewed. Nothing like making an admin's job easy [!]

  • FYI I got this working, but the "d" file I copied was a .ps file (not a .zip of a .pdf), so maybe it differs by printer? – Arel Apr 25 at 15:52
  • Also, if you don't want to set PreserveJobFiles=Yes for all your print jobs, you can try printing to an offline printer, and while it's in the queue you can access the "d" file. – Arel Apr 25 at 15:57
2

In Finder, from the Go menu in the menubar (the right click menu of Finder in the Dock) select Go to Folder... (G).

Paste in /private/var/spool/ and hit Go.

The print jobs are the files beginning with "d". Copy them and rename them to end in .pdf.

0

As all macs using cups for printing, you can manage it with a web interface. To enable it, you have to type:

cupsctl WebInterface=yes

Then you should be able to check print server configuration, printers, queues and jobs from:

http://127.0.0.1:631/

If you enter in this website, under Administration → Jobs, click Manage Josbs and you should be able to find you job there.

  • 1
    How can the OP save the pending file using the web interface? – nohillside Feb 28 '15 at 20:36
  • 1
    I will update with this when I'm on my computer, can't test it right now, but it's a starting point. – jherran Feb 28 '15 at 20:37
  • There is no salvage along this way, sorry. Look at the @David Koontz one. – daniel Azuelos Mar 1 '15 at 17:32

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .