代码之家  ›  专栏  ›  技术社区  ›  Riho

通过使用ghostscript将页边距添加到PDF中来缩放页面中的图像

  •  0
  • Riho  · 技术社区  · 7 年前

    我的客户希望我在他们的单页PDF文件的右上边框中添加其他信息。该文件包含产品的图像以及度量和其他信息。我需要调整页面的内容,这样右上页边距就可以清楚地添加额外的数据。 我在Windows中玩过ghostscript,但到目前为止,要么图像被剪切掉,要么什么都没有发生: gswin32c-soutputfile=scaled2.pdf-dbatch-dnopause-ddeviceheightpoints=312-ddevicewidthpoints=421-dfixedmedia-dpdffitpage-sdevice=pdfrite-c“<>setpagedevice”-f 255x195x175mm_eb_fefco0427_fsn1013.pdf

    因为我通常不与PDF一起工作,所以我在这里已经没有债务了。 After scaling Print preview for A4 landscape

    我需要PDF格式的图像,缩小比例,放在右下角。PDF大小应相同。

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   KenS    7 年前

    你可以看看我答案中的代码 here . 这将向您展示如何将PDF文件的内容重新调整为不同的媒体大小,以及如何在名义输出媒体上重新定位缩放的内容。

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

    [编辑]

    好的,所以你要么需要做两个步骤,要么自己计算这个比例。

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

    要自己进行缩放,您需要将缩放添加到beginpage命令,而不是让ghostscript为您进行缩放。这意味着你必须自己计算比例因子。

    setpagedevice运算符的参数如下所示:

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

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