我在ImageMagick中将PDF转换为PNG时遇到了麻烦。我使用了不同的变体,包括使用Ghostscript并将输出传递给ImageMagic(如给定的here - 这对我来说似乎不起作用,所以我必须保存到临时文件而不是使用管道) 。我发现这对我来说效果最好:
convert -background transparent -density 150x150 Test.pdf Test-IMSoloOut.png
以下是我的查看器中原始PDF的屏幕截图(预览,在OS X上):
当我转换它时,我明白了:
问题在于它正在降低利润率。我不清楚它是否使它们透明或者是什么,但图像的格式看起来很邋with而没有边缘。
我得到了这个尝试:
convert -density 150x150 Test.pdf -gravity center -background transparent -extent 612x792 Test-Extras.png
这只是给了我页面的一部分:
我尝试调整它并将612x792更改为1275x1650,这将适合150DPI乘以页面大小(8.5“x 11”)。当我这样做时,我得到了一个大图像,但是,边缘消失了,就像上面的第二张图片一样。
这些图像将显示在将显示多个页面的Java程序中,因此边距可能会有所不同(换句话说,我不能只围绕输出包裹设置边框,如第二张图片所示) ,因为边框尺寸会在某些图像中发生变化)。
我已经看到了删除PDF到PNG转换边距的一些点击,但它们似乎没有提供任何帮助我。
我的猜测是,在转换过程中,边距被转换为透明的东西,所以我尝试将“-transparent white”添加到命令行进行转换,但它没有帮助。
我可以做些什么来获取边距,或者如果它们在那里并且不可见,我该如何让它们显示?基本上我希望PNG文件(图像#2)看起来像包含边距的PDF文件(图像#1)。
我怀疑我错过了一些明显的东西 - 我希望这很容易。
如何确保边距中的空间显示?
答案 0 :(得分:3)
我从来没有得到确切答案,但其中一位ImageMagick人对此非常有帮助。基本上,我需要使用选项“-extent”来指定图像的大小。由于我使用的密度与默认密度不同,因此我也必须考虑到这一点。有效的命令行是:
convert -density 150x150 InputFile.pdf -background white -units PixelsPerInch -density 150 -extent 1275x1650 OutputFile.png
1275x1650来自150(对于DPI)乘以8.5“宽度和11乘以高度。