使用Ghostscript将PDF转换为JPEG

Dan*_*zan 6 pdf image ghostscript

我正在使用Ghostscript使用Ghostscript将我的PDF文件转换为JPEG,效果很好。

对于我的输出图像我正在使用%03d的文件名,这样的文件名出来001002...等根据页码。

但在某些情况下,我希望数字从更高的数字开始。

例如,我处理了两页的文件,因此输出图像是page001.jpgpage002.jpg

现在,我要处理其它PDF和,而不是替换这些文件,我想创建page003.jpgpage004.jpg

如何才能做到这一点?

这是我现在使用的完整命令行:

'C:\gs\gs9.14\bin \gswin64c -dNOPAUSE -sDEVICE=png16m \
  -sOutputFile=page-%03d.jpg -r100x100 -q' . $pdf_file. '-c quit'
Run Code Online (Sandbox Code Playgroud)

Kur*_*fle 5

这是您可以使用的解决方法:

gswin64c.exe                  ^
   -sDEVICE=png16m            ^
   -sOutputFile=page-%03d.jpg ^
   -r100x100                  ^
   -c "showpage showpage"     ^
   -f filename.pdf
Run Code Online (Sandbox Code Playgroud)

-c "showpage showpage"插入两空白页到输出。输出文件将被命名

page-001.jpg + page-002.jpg + page-003.jpg + page-004.jpg

所以前两个是纯白色的 JPEG,之后应该删除。

您可以使用任意数量的空页扩展此命令。


更新

当然,如果您事先知道要将几个不同的 PDF 文件转换为图像,并且您希望新 PDF 的计数从上一个 PDF 结束的地方继续准确地继续,您可以这样做:

gswin64c.exe                  ^
   -sDEVICE=jpeg              ^
   -sOutputFile=page-%03d.jpg ^
   -r100x100                  ^
   -f file1.pdf               ^
   -f file2.pdf               ^
   -f file3.pdf               ^
   -f [...]
Run Code Online (Sandbox Code Playgroud)

顺便说一句,您的原始命令请求.jpg文件后缀,而 Ghostscript 设备是png16m. 这不符合。最初我盲目地复制了你的命令,但现在我已经更正了。


Ken*_*enS 0

使用标准版本的 Ghostscript 无法做到这一点,输出文件编号以发出的页码形式给出(因此,如果您有一个 10 页文件,使用 /NumCOpies 2,您将获得编号为 0 到 19 的文件)。

当然,您可以在同一命令行上处理这两个文件,我认为这将为您提供第二个文件,其页码从第一个文件结束的位置开始。

否则,您将必须修改 Ghostscript 设备的源代码。