Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I've got a PDF document with very large pictures (high quality, high DPI, filling whole pages). I wanted to print it on my HP LaserJet 2200dn, but instead of the pictures I get empty pages. I assume that this is because my printer does not have enough RAM.

What can I do to print this PDF?

I am using Debian unstable, with default drivers for this printer. I am using a network print server (the HP Jetdirect one, attached to the printer).

Update: the same problem happens on a slightly better HP Laserjet 4100dtn.

share|improve this question
add comment

2 Answers

The HP Laserjet 2200dn should also support the PCL 5 drivers, the processing PS->PCL5 will be done on the desktop/server and the resultant PCL5 file will be smaller for the printer to process.

Another option can be converting with pdf2ps and the reprocessing the ps in the server to reduce the image dpi before sending to the printer.

Just found an example of reducing the pdf resolution:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

http://www.ubuntugeek.com/ubuntu-tiphowto-reduce-adobe-acrobat-file-size-from-command-line.html

share|improve this answer
    
The gs line took an hour, from a 77MB file produced 1.1MB file which had the same number of pages, but each of them is "empty"... empty in a sense that the pages still contain an image, but this image is almost completely white with exception of some color pixels (the input had only gray-scale images). Something must went wrong in the process... –  liori Nov 28 '11 at 23:12
add comment
up vote 0 down vote accepted

Here's how I solved it. I don't understand why it worked, though.

Firstly, I dumped all the pages into 600DPI png files using ghostscript. Note that in my case document was B&W, so the device chosen in this invocation is reflecting this:

gs -sDEVICE=pnggray -r600 -o pages-%d.png input.pdf

Then converted each single image into a single PDF file using imagemagick. It was actually pretty quick operation, so it wasn't worth to try to parallelize it (with GNU Parallel or similar software).

for file in *.png; do convert "$file" "${file/png/pdf}"; done

Then I concatenated PDF files into a single file using pdftk (other tools would probably also work, but it was what I had already installed):

pdftk pages*.pdf cat output output.pdf

The produced output.pdf file has about the same size as the input one, looks good enough and (what's most important) can be printed by my printer... with the drawback that for whatever reason my printer processes each page for ~5 minutes before printing. I left printing for a night anyway, so I didn't care looking for better option.

So what I did is more-or-less recompressing all the pages.

share|improve this answer
    
Parallelizing using GNU Parallel is easier than a for-loop: parallel convert {} {.}.pdf ::: *.png –  Ole Tange Dec 21 '11 at 10:12
    
@Ole Tange: I didn't have it installed, and AFAIK there's no package for Debian. In my case it would take more time :-) –  liori Dec 21 '11 at 12:37
    
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.