【问题标题】:Scale image in page by adding margins to PDF with Ghostscript通过使用 Ghostscript 向 PDF 添加边距来缩放页面中的图像
【发布时间】:2019-05-31 17:09:55
【问题描述】:

我的客户希望我在其单页 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

因为我通常不使用 PDF,所以我在这里没有债务。

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

任何其他适用于 Windows 并且可以从命令行处理的解决方案也可以。

【问题讨论】:

    标签: pdf ghostscript


    【解决方案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 文件来测试。

    【讨论】:

    • gswin32c -sOutputFile=scaled2.pdf -dBATCH -dNOPAUSE -dDEVICEHEIGHTPOINTS=312 -dDEVICEWIDTHPOINTS=421 -dFIXEDMEDIA -dPDFFitPage -sDEVICE=pdfwrite -c " > setpagedevice" -f 255x195x175mm_EB_Fefco0427_FSN1013.pdf 生成较小的文件,但图像仍然覆盖它,移动它时,然后裁剪溢出的部分。
    • 做到了!现在它坐在角落里。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2014-11-30
    • 2018-02-11
    • 1970-01-01
    • 1970-01-01
    • 2013-08-23
    • 1970-01-01
    • 2013-02-28
    • 2021-05-03
    相关资源
    最近更新 更多