如何使用ghostscript将PDF转换为PNG?

时间:2011-06-03 22:51:13

标签: pdf ghostscript postscript

我通常可以使用ghostscript将PDF转换为PNG,命令为:

gs \
 -q \
 -dNOPAUSE \
 -dBATCH \
 -sDEVICE=pnggray \
 -g2550x3300 \
 -dPDFFitPage \
 -sOutputFile=output.png \
  input.pdf

但这对某些PDF文件不起作用。例如,上面的命令将此PDF file转换为此PNG - 原始PDF只是PNG左下角的一个小图片,而不是填充整个页面。

是否有更强大的方法可以使用ghostscript或其他命令行工具将PDF转换为PNG?

注意:如果我在OS X上预览中通过“print - >另存为pdf”生成有问题的新PDF文件,那么命令工作正常。

1 个答案:

答案 0 :(得分:7)

只需使用ImageMagick's convert

convert foo.pdf foo.png

您可以使用格式字符串更精确地控制页码,例如:

convert foo.pdf "foo-%03d.png"

当然还有无数其他的ImageMagick选项,但上面的基本命令是你大部分时间都需要的。

编辑:关于你的“bad.pdf”:

简短的回答是将选项-dUseCropBox添加到gs命令或-define pdf:use-cropbox=true添加到convert命令。

gs \
 -q \
 -dNOPAUSE \
 -dBATCH \
 -sDEVICE=pnggray \
 -g2550x3300 \
 -dPDFFitPage \
 -dUseCropBox \
 -sOutputFile=output.png \
  input.pdf

convert \
 -density 300 \
 -define pdf:use-cropbox=true \
  foo.pdf \
  foo.png

如果您在文本编辑器中查看PDF,您可以看到指定了CropBox和MediaBox,并且CropBox要小得多。