通过使用 Ghostscript 向 PDF 添加边距来缩放页面中的图像

Scale image in page by adding margins to PDF with Ghostscript

我的客户希望我在他们单页 PDF 的右边框和上边框中添加附加信息。该文件包含带有措施和其他信息的产品图像。我需要缩放页面的内容,以便 right/top 边距可以清楚地添加额外的数据。 我在 Windows 中使用过 Ghostscript,但到目前为止要么图像被裁剪掉要么没有任何反应: gswin32c -sOutputFile=scaled2.pdf -dBATCH -dNOPAUSE -dDEVICEHEIGHTPOINTS=312 -dDEVICEWIDTHPOINTS=421 -dFIXEDMEDIA -dPDFFitPage -sDEVICE=pdfwrite -c "<> setpagedevice" -f 255x195x175mm_EB_Fefco0427_FSN1013.pdf

因为我通常不使用 PDF,所以我已经摆脱了这里的债务。

我需要将 PDF 格式的图像缩小并放在右下角。 PDF 大小应该相同。

在 Windows 中工作并且可以从命令行处理的任何其他解决方案也可以。

您可以查看我的回答中提供的代码。这向您展示了如何将 PDF 文件的内容重新缩放为不同的媒体大小,以及如何在标称输出媒体上重新定位缩放后的内容。

我很惊讶 -c "<>setpagedevice" -f 不只是产生错误,因为那不是有效的 PostScript。

[编辑]

好的,所以你要么需要做两遍,要么自己计算比例。

在两次通过模型中,您首先应用缩放,这将得到一个 PDF 文件,其中的内容仍然填满页面,但页面已调整为较小的尺寸。然后,您 运行 它带有翻译和所需的最终媒体大小,但 不要 设置 FitPage。

要自己进行缩放,您需要将缩放比例添加到 BeginPage 命令,而不是让 Ghostscript 为您做。这意味着您将不得不自己计算比例因子。

setpagedevice 运算符的参数类似于:

<</BeginPage {0.5 0.5 scale 200 0 translate}>> setpagedevice

这会将内容在每个方向上缩小 50%,并将原点向右移动 100 磅。显然,转换值将取决于比例因子以及原始和缩放媒体的大小。我会试试这个来检查它,但你没有提供示例 PDF 文件来测试。