74
votes

How do I execute ImageMagick's convert if I want a JPEG from the first page only of a multi-page PDF?

3

3 Answers

111
votes

If you are using a convert command line you can execute it with these parameters:

convert  source.pdf[0]  output.jpeg

Note that the page count of ImageMagick is 0-based. So [0] means 'page 1'. To select, say the 4th page, you'd have to use [3].

This syntax does not only work for PDF input. It also works with other multi-page or mult-frame formats, such as multi-page TIFF or animated multi-frame GIFs and PNGs.

15
votes

Don't use ImageMagick, use Ghostscript. ImageMagick calls Ghostscript to do the work anyway...

gs -sDEVICE=jpeg -sOutputFile=<output-filename> -dLastPage=1 <input filename>

You can also change the device to jpegcmyk (for CMYK output) or jpeggray for gray output, you can change the resolution using -r, use -dFirstPage and -dLastPage to extract a continuous range of pages, etc.

5
votes

To further the answer by @KenS, Here are a more few details, particularly for Windows users.

You can download GhostScript for Windows here: http://www.ghostscript.com/download/gsdnld.html. The default installation path for the executable is "C:\Program Files\gs\gs910\bin\gswin64c.exe".

The command-line arguments listed above are correct in Windows too, but here are a few more that I found useful:

gswin64c.exe -dNOPAUSE -dBATCH -r96 -sDEVICE=jpeg -sOutputFile="<out-file.jpg>"
             -dFirstPage=1 -dLastPage=1 "<input-file.pdf>"

I also created a batch file that wraps this up nicely and posted it to my GitHub account. It makes it a lot easier to create thumbnails for multiple .pdf files too. Check it out at pdf2jpg.bat.