如何执行ImageMagick只将多页PDF的第一页转换为JPEG?

Vin*_*kal 60 pdf jpeg imagemagick

convert如果我只想多页PDF 的第一页获得JPEG ,我该如何执行ImageMagick ?

Ark*_*ski 86

如果您使用的是convert命令行,则可以使用以下参数执行它:

convert  source.pdf[0]  output.jpeg
Run Code Online (Sandbox Code Playgroud)

请注意,ImageMagick的页数是从0开始的.所以[0]意味着'第1页'.要选择,比如第4页,你必须使用[3].

此语法不仅适用于PDF输入.它还适用于其他多页或多帧格式,例如多页TIFF或动画多帧GIF和PNG.

  • 顺便说一句,你也可以选择*范围*,例如使用`source.pdf [0-3]`. (8认同)
  • 这适用于多页TIFF文件 (2认同)

Ken*_*enS 13

不要使用ImageMagick,请使用Ghostscript.无论如何,ImageMagick都会调用Ghostscript进行工作......

gs -sDEVICE=jpeg -sOutputFile=<output-filename> -dLastPage=1 <input filename>
Run Code Online (Sandbox Code Playgroud)

您也可以将设备更改为jpegcmyk(对于CMYK输出)或jpeggray灰度输出,您可以使用-r,使用-dFirstPage-dLastPage提取连续范围的页面等来更改分辨率.

  • 只是阻止其他人通过:如果你走 Ghostscript 路线,它在缩放图像时[无法保持宽高比](/sf/answers/701553961/)。因此,如果您想制作 PDF 的缩略图……这是行不通的。 (2认同)

was*_*ard 5

为了进一步提供@KenS的答案,以下是一些详细信息,尤其是Windows用户。

您可以在此处下载适用于Windows的GhostScript:http : //www.ghostscript.com/download/gsdnld.html。可执行文件的默认安装路径为“ C:\ Program Files \ gs \ gs910 \ bin \ gswin64c.exe”。

上面列出的命令行参数在Windows中也是正确的,但是这里有一些我认为有用的参数:

gswin64c.exe -dNOPAUSE -dBATCH -r96 -sDEVICE=jpeg -sOutputFile="<out-file.jpg>"
             -dFirstPage=1 -dLastPage=1 "<input-file.pdf>"
Run Code Online (Sandbox Code Playgroud)

我还创建了一个批处理文件,将其很好地包装起来并将其发布到我的GitHub帐户中。同样,为多个.pdf文件创建缩略图也变得容易得多。在pdf2jpg.bat上查看。