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

时间:2019-01-05 09:17:59

标签: pdf ghostscript

我的客户希望我在其单页PDF的右上角和顶部边框中添加其他信息。该文件包含产品的图片以及度量和其他信息。我需要缩放页面的内容,以便可以清楚地看到右边/顶部的空白以添加额外的数据。 我已经在Windows中玩过Ghostscript,但是到目前为止,图像被裁剪掉了,或者什么也没有发生: gswin32c -sOutputFile = scaled2.pdf -dBATCH -dNOPAUSE -dDEVICEHEIGHTPOINTS = 312 -dDEVICEWIDTHPOINTS = 421 -dFIXEDMEDIA -dPDFFitPage -sDEVICE = pdfwrite -c“ <> setpagedevice” -f 255x195x175mm_EB_Fefco0427_FSN1013。

由于我通常不使用PDF,所以我在这里一无所有。 After scaling Print preview for A4 landscape

我需要PDF缩小图像并位于右下角。 PDF大小应该相同。

在Windows中可以用命令行处理的任何其他解决方案也都可以。

1 个答案:

答案 0 :(得分:1)

您可以查看我的答案here中显示的代码。这说明了如何将PDF文件的内容重新缩放为不同的介质大小,以及如何将缩放后的内容重新放置在标称输出介质上。

我很惊讶-c "<>setpagedevice" -f不会简单地产生错误,因为那是无效的PostScript。

[编辑]

好的,所以您要么需要进行两次通过,要么自己计算比例。

在两次通过模型中,您首先应用缩放,这将为您提供一个PDF文件,其中内容仍会填充页面,但是页面已被调整为较小的尺寸。然后,您可以使用翻译和所需的最终媒体尺寸来运行它,但不要设置FitPage。

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

setpagedevice运算符的参数类似于:

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

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