Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get a preview JPEG of a PDF on Windows?

I have a cross-platform (Python) application which needs to generate a JPEG preview of the first page of a PDF.

On the Mac I am spawning sips. Is there something similarly simple I can do on Windows?

like image 971
Gareth Simpson Avatar asked Aug 02 '08 17:08

Gareth Simpson


People also ask

How do I convert a PDF to an image in Preview?

Step 1: Open your PDF file in preview. Step 2: Select the page you want to convert to JPG, and go to File > Export… Step 3: A dialogue box will open. Under Format, select JPEG.

Can you save a PDF as a JPEG?

Open the PDF you wish to convert. Click File > Export. Select 'JPEG' from the 'Format' dropdown menu. Click Save.


1 Answers

ImageMagick delegates the PDF->bitmap conversion to GhostScript anyway, so here's a command you can use (it's based on the actual command listed by the ps:alpha delegate in ImageMagick, just adjusted to use JPEG as output):

gs -q -dQUIET -dPARANOIDSAFER -dBATCH -dNOPAUSE -dNOPROMPT \ -dMaxBitmap=500000000 -dLastPage=1 -dAlignToPixels=0 -dGridFitTT=0 \ -sDEVICE=jpeg -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r72x72 \ -sOutputFile=$OUTPUT -f$INPUT 

where $OUTPUT and $INPUT are the output and input filenames. Adjust the 72x72 to whatever resolution you need. (Obviously, strip out the backslashes if you're writing out the whole command as one line.)

This is good for two reasons:

  1. You don't need to have ImageMagick installed anymore. Not that I have anything against ImageMagick (I love it to bits), but I believe in simple solutions.
  2. ImageMagick does a two-step conversion. First PDF->PPM, then PPM->JPEG. This way, the conversion is one-step.

Other things to consider: with the files I've tested, PNG compresses better than JPEG. If you want to use PNG, change the -sDEVICE=jpeg to -sDEVICE=png16m.

like image 123
Chris Jester-Young Avatar answered Sep 25 '22 07:09

Chris Jester-Young