边距在 PDF 中消失 -> 使用 ImageMagick 进行 PNG 转换
Posted
技术标签:
【中文标题】边距在 PDF 中消失 -> 使用 ImageMagick 进行 PNG 转换【英文标题】:Margins Disappear In PDF -> PNG Conversion with ImageMagick 【发布时间】:2012-12-14 00:48:12 【问题描述】:我在 ImageMagick 中将 PDF 转换为 PNG 时遇到问题。我使用了不同的变体,包括使用 Ghostscript 并将输出传送到 ImageMagic(如给定的here - 这似乎对我不起作用,所以我必须保存到临时文件而不是使用管道)。我发现这对我最有效:
转换-背景透明-密度150x150 Test.pdf Test-IMSoloOut.png
这是我的查看器中原始 PDF 的屏幕截图(预览,在 OS X 上):
当我转换它时,我得到了这个:
问题是它正在减少边距。我不清楚是让它们透明还是什么,但图像的格式看起来很草率,没有边距。
我得到了这个尝试:
转换 -density 150x150 Test.pdf -重心 -背景透明 -extent 612x792 Test-Extras.png
这只是给了我页面的一部分:
我尝试对其进行调整并将 612x792 更改为 1275x1650,这将适合 150DPI 乘以页面大小 (8.5" x 11")。当我这样做时,我得到了一张大图,但同样,边距消失了,就像上面的第二张图片一样。
这些图像将显示在将显示多个页面的 Java 程序中,因此边距可能会有所不同(换句话说,我不能只在输出周围设置边框,如第二张图片所示,因为某些图像的边框大小会发生变化)。
我已经看到了一些关于删除 PDF 到 PNG 转换的边距的点击,但它们似乎没有提供任何帮助。
我的猜测是,在转换过程中,边距被转换为透明的东西,所以我尝试在命令行中添加“-transparent white”进行转换,但没有帮助。
我该怎么做才能恢复页边距,或者,如果它们在那里但不可见,我怎样才能让它们显示?基本上我希望 PNG 文件(图片 #2)看起来像包含边距的 PDF 文件(图片 #1)。
我怀疑我遗漏了一些明显的东西 - 我希望就这么简单。
如何确保边距中的空间显示出来?
【问题讨论】:
【参考方案1】:我从来没有得到确切的答案,但 ImageMagick 的一位人员对此很有帮助。基本上,我需要使用选项“-extent”来指定图像的大小。由于我使用的密度与默认值不同,因此我也必须考虑到这一点。有效的命令行是:
convert -density 150x150 InputFile.pdf -background white -units PixelsPerInch -density 150 -extent 1275x1650 OutputFile.png
1275x1650 来自将 150(对于 DPI)乘以 8.5" 的宽度和 11 的高度。
【讨论】:
即使没有密度,我也需要extent
。如果没有范围,幻灯片会被裁剪。以上是关于边距在 PDF 中消失 -> 使用 ImageMagick 进行 PNG 转换的主要内容,如果未能解决你的问题,请参考以下文章
通过 contentInset 属性添加边距在 iPad 上居中 UITableView?
Div 的边距在 Internet Explorer 中不起作用