使用Ghostscript将多页PDF转换为单个JPG?


15

我知道Ghostscript可以将PDF转换为JPG,并且在多页PDF的情况下,可以将每一页撕成单独的JPG。但是,是否可以将它们撕成一个JPG,以使页面相互粘贴,例如JPG的上半部分是第1页,下半部分是第2页?还是我必须使用其他程序(ImageMagick可以这样做)将JPG页面组合成一个图像吗?

Answers:


17

是的,您必须将每个PDF页面转换为一个JPG文件(Ghostscript可以做到)。

然后使用另一个程序将生成的JPG文件缝合在一起(ImageMagickGraphicsMagic可以使用其montage子命令来完成此工作)。

我不知道有任何软件可以一次性完成。

PDF到JPG的转换(使用Ghostscript): 您将要确保获得最好的结果。因此,请确保您调整了命令行选项,以便它们为您工作。将从这个开始:

gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -dSAFER ^
    -sDEVICE=jpeg ^
    -dJPEGQ=95 ^
    -r600x600 ^
    -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^
    c:/path/to/pdffile.pdf

这将创建名为pdffile-001.jpegpdffile-002.jpg等的JPG 。参数* -dJPEGQ = 95“将“ JPEG质量”设置为95%。它使用的分辨率为“ 600x600 dpi”。您可能需要另外如果您的Ghostscript的默认设置不符合您的需求,请控制生成的JPG的页面大小:

gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -dSAFER ^
    -sDEVICE=jpeg ^
    -dJPEGQ=95 ^
    -r600x600 ^
    -dPDFFitPage ^
    -dFIXEDMEDIA ^
    -dDEVICEWIDTHPOINTS=800 ^
    -dDEVICEHEIGHTPOINTS=600 ^
    -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^
    c:/path/to/pdffile.pdf

要么

gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -dSAFER ^
    -sDEVICE=jpeg ^
    -dJPEGQ=95 ^
    -r600x600 ^
    -dPDFFitPage ^
    -dFIXEDMEDIA ^
    -sDEFAULTPAPERSIZE=a4 ^
    -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^
    c:/path/to/pdffile.pdf

使用montage(ImageMagick或GraphicsMagick) JPG多重拼接到单张montage命令(在本示例中使用的是ImageMagick)使您可以控制平铺模式。如果使用例如,-tile 4x3您将获得以下拼版版式:

1  2  3  4    
5  6  7  8    
9 10 11 12    

您可以使用此命令将12个单独的JPG拼接在一起:

montage ^
    -border 0  ^
    -tile 4x3  ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg  ^
    c:/path/to/final.jpg

当然,montage还有许多其他参数,这些参数使您可以确定输入和生成的JPG的背景,间距,偏移量,修饰,标签,旋转,裁切,标题等。


编辑:(我本来想在我的原始答案中给出这个提示,但是忘记了。)montage默认情况下将使用120x120像素的图块大小。如果要保留每个图块的原始页面大小,则必须添加-geometry到命令行。假设您的PDF中有 A4(= 595x852 pt)页,并且您希望保留此页面,但还要在平铺的水平方向上添加11pt的间距,在垂直方向上添加22pt的间距(加上4pt的深灰色边框/边框线)每个磁贴周围),请执行以下操作:

montage ^
    -border 4 ^
    -tile 4x3 ^
    -geometry 595x842+11+22 ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg ^
    c:/path/to/final.jpg

编辑2 :(仍然缺少另一个重要提示。)如果您不想在拼接/蒙太奇过程(创建的PDF至JPG转换)中失去好的图像质量,则还可以-quality 100像这样将参数添加到命令行中:

montage ^
    -border 4 ^
    -tile 4x3 ^
    -geometry 595x842+11+22 ^
    -quality 100 ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg ^
    c:/path/to/final.jpg

谢谢您的回答。我在ImageMagick 6.9.9中看不到几何参数。而且,合成图像的图像质量仍然很差,我从字面上看不出任何话。
极客

2

由于ImageMagick内置了对GhostScript的支持,因此您可以一次性完成全部操作:

montage -tile 5 thispdfis25pages.pdf tiledoverview.jpg

它将占用每一页并端到端创建一个长jpeg。


1
但这不会为您提供高质量的JPG,因为它将使用Ghostscript及其默认设置(对于JPG输出,这些设置相当可惜。)分两步进行操作(并首先检查JPG页面)可以为您提供最佳控制,并且还可以提供不错的JPG输出)。
Kurt Pfeifle,2010年

您可以通过使用PDF的ImageMagick的-density设置来更改Ghostscript设置,并获得同样好的结果。如果您不知道如何使用IM选项,请不要敲它。
erjiang 2010年

1
k .:嘿,我没敲过ImageMagick。而且,即使应用ICC颜色配置文件,我也知道如何使用其选项...但是您不能将所有 Ghostscript选项传递给剪辑。我的评论涉及您建议的命令,但未提及-density
Kurt Pfeifle

顺便说一句,我在SO上的其他地方读到,当您以这种方式调用ImageMagick时,它会在内部将PDF转换为PS,然后再将PS转换为PNG,这是另一个不这样做的原因(两次转换=>质量较低且速度较慢)。
Ibrahim
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.