我通常可以使用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文件,那么命令工作正常。
答案 0 :(得分:7)
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要小得多。