边距在 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 中不起作用

负底部边距在 IE 中不起作用

flexbox边距在孩子之间折叠[重复]

如何在 CSS 中记住边距在边框之外,而在内部填充 [关闭]

DWCC2017里面图片与文字水平边距在哪