我使用GS完成从PDF到JPEG的转换,下面是我使用的命令:
gs -sDEVICE=jpeg -dNOPAUSE -dBATCH -g500x300 -dPDFFitPage -sOutputFile=image.jpg image.pdf
在此命令中,如您所见,-g500x300
将设置转换后的图像大小(宽度x高度)。
有没有一种方法只是设置宽度,而不必输入高度,因此它将基于宽度,以缩放的高度使用其原来的高宽比?我知道这可以通过使用ImageMagick转换来实现,您只需将0
放在高度参数上,即-resize 500x0
。我试过使用GhostScript,但我不认为这是正确的方法。
我决定不使用ImageMagick转换原因,因为当需要转换一个大尺寸的多页PDF时,它非常慢。
谢谢你的帮助!
发布于 2012-04-05 03:13:24
这篇文章解释了幽灵脚本速度更快的原因-- https://serverfault.com/questions/167573/fast-pdf-to-jpg-conversion-on-linux-wanted,唯一解决这个问题的方法就是修改imagemagick代码。
不幸的是,鬼怪脚本不支持自动确定的输出大小。这主要是因为所使用的-g
选项实际上是确定将容纳呈现输出的设备大小,而不是呈现输出本身。由于-dPDFFitPage
开关试图匹配设备大小,该输出大小正在发生变化。尽管您可以使用-dDEVICEHEIGHT=n
定义jpeg‘设备’的高度,但这将使设备宽度保持不变的默认值。
虽然这是一个有些乏味的解决方法,但您可以使用幽灵脚本或imagemagick来获取pdf页面的宽度和高度。若要使用ghostscript执行此操作,请参见Using GhostScript to get page size的答案。然后,您可以计算适当的宽度来设置-g标志以保持高宽比。如果您可以找出一组命令来完成所有这一切,那么就可以得到额外的分数:)
发布于 2021-09-20 15:47:11
若要使用Ghostscript调整图像大小,请使用-dDownScaleFactor
(例如,gs -dBATCH -dNOPAUSE -r300 -dDownScaleFactor=3 -sDEVICE=png16m -sOutputFile=/tmp/26a0e9f7-3f26-437d-9a97-1653074e819a_%d.png,/tmp/temp.pdf
)
如果设置精确的宽度维度并不重要,则可以使用此方法。它适用于大多数用例。
https://stackoverflow.com/questions/10004858
复制相似问题