使用Ghostscript进行PDF到JPG的转换

时间:2015-01-02 10:04:07

标签: image pdf ghostscript

我正在使用Ghostscript将我的PDF文件转换为带有Ghostscript的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'

2 个答案:

答案 0 :(得分:2)

这是一个解决方法,您可以使用:

gswin64c.exe                  ^
   -sDEVICE=png16m            ^
   -sOutputFile=page-%03d.jpg ^
   -r100x100                  ^
   -c "showpage showpage"     ^
   -f filename.pdf

-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 [...]

BTW,您的原始命令请求.jpg文件后缀,而Ghostscript设备是png16m。这不匹配。最初我盲目地复制了你的命令,但现在我已经纠正了它。

答案 1 :(得分:0)

您不能使用标准版本的Ghostscript,输出文件编号作为发出的页码给出(因此,如果您有一个10页文件,使用/ NumCOpies 2,您将获得编号为0到19的文件)。

当然,你可以在同一个命令行上处理这两个文件,我想这会给你第二个文件的页码从第一组停止的地方开始。

否则你将不得不修改Ghostscript设备的源代码。