【问题标题】:Using Ghostscript to change page size from A4 and other to Letter使用 Ghostscript 将页面大小从 A4 等更改为 Letter
【发布时间】:2016-11-03 14:55:51
【问题描述】:

我最近问过this question about changing paper size 并且有一个大多数时间都可以正常扩展的命令:

gs -sDEVICE=pdfwrite -sOutputFile= $outFile -dBATCH -dNOPAUSE -q -dDEVICEHEIGHTPOINTS=792 -dDEVICEWIDTHPOINTS=612 -dPDFFitPage -dFIXEDMEDIA $inFile

我们需要让它生成美国信函的输出页面。我有两个可以发布的问题文件。需要额外的空白;另一个只需要非常小的重新缩放,但它会得到截然不同的输出。

first file 是 A4 文件。该命令将其缩放到高度 792,宽度缩放到 559.667。它被精确地缩放,但我们需要两边或右边的空白。如何修改我的命令(或运行第二个命令)来执行此操作?

second file 为 8.52" x 11.02"。对于这个,我得到一个 549.127 x 709.8 pts 的输出文件,但我根本没有得到它。 0.02" 在我们的打印公差范围内,所以我们可以放手,但是 a) 我宁愿只使用一个过程 b) 也许问题不在于小的缩放调整,也许它会成为其他文件的问题。

【问题讨论】:

    标签: pdf ghostscript


    【解决方案1】:

    这些以及您之前的问题都与 PDF 文件中可用的无数不同 Box 以及 PDF 处理器处理可用 Box 的各种方式有关。

    对于您的第一个文件; pdfwrite 的输出的 MediaBox 为 612x792,但 CropBox 为 [26.1662903 0 585.83374 792.0],这(当然)不是 Letter。这是将 A4 缩小为 Letter 并将缩小后的区域在 Letter 介质上居中的结果。

    如果您删除 CropBox(使用二进制编辑器)并在 Acrobat 中打开文件,您将看到空白区域均匀分布在页面的左右两侧。

    所以这完全取决于您的打印过程。您需要告诉该进程使用 MediaBox 并忽略 CropBox,或者在 CropBox 与媒体不同时让其将 CropBox 居中放置在媒体上。

    您的第二个文件的 MediaBox 为 684x864,即 9.5x12 英寸。但是,它有一个 TrimBox,它是 [33.8027 33.7217 647.533 827.028],计算得出的结果是 8.524x11.018 英寸。

    显然 Acrobat(或您用来获取大小的任何东西)正在使用 TrimBox,而不是 MediaBox。 Ghostscript 默认使用 MediaBox,如果您希望它使用不同的 *Box,那么您必须告诉它。尝试将-dUseTrimBox 添加到您的命令行。请参阅我对您上一个问题的回答:-)

    【讨论】:

    • 再次感谢您的详细回复,Ken。显然,我需要了解 PDF 的内部工作原理。我是否在尝试使用 pdfinfo 和 gs 自动化流程的正确轨道上?我们正在用 PHP 编写脚本(这并不重要)。
    • 我们试图完全通过自动化来做到这一点,所以对于第一个文件,我尝试了 -dUseMediaBox(我不知道如何告诉它忽略 CropBox)。我不控制打印过程,所以我的目标可以是在软件中将 CropBox 置于媒体的中心。对于第二个文件,-dUseTrimBox 将其设置为 612.00 x 791.07。在这里,以媒体为中心的 Crop/TrimBox 也很好。但我根本不知道该怎么做。 FWIW,我正在使用 gs v8.70。谢谢!
    • 您不需要(或不应该)告诉 Ghostscript 忽略 CropBox,它始终使用 MediaBox,因此没有开关“UseMediaBox”,这是默认行为。 CropBox 以媒体为中心,这就是左下角不是 0,0 的原因。您真的需要更新您的 Ghostscript 版本。 8.70 现在已经 7 岁了,我不知道它在这方面的表现如何(也没有研究它的倾向!)。我无法真正为您提供有关自动化流程的意见,因为我真的不明白您想要实现的目标......
    • 对不起,如果我不清楚。我将使用我想要完成的内容(简而言之,从公众接收 PDF 并将其大小调整为 8.5x11)和一些更具体的数据来更新原始帖子。不幸的是,8.70 是通过使用 Amazon Linux 的 AWS 实例上的默认 yum 存储库提供的。我会在周末得到一个更新的版本,然后重试。谢谢!
    • 好吧,目标是公平的,但问题(正如您所发现的)是调整 what 框的大小,确切地说。 PDF 文件可以有 5 个不同的框; MediaBox、CropBox、BleedBox、TrimBox 和 ArtBox。 Ghostscript 默认使用 MediaBox,但可以告诉您要使用其他哪些。但由您决定哪个是“正确的”!缩放确实会产生正确的 MediaBox,但它添加了一个 CropBox 以将区域限制为缩放的原始内容。如果您不能忍受,那么您需要更改 PDFFitPage。目前我看不到解决方案。
    猜你喜欢
    • 1970-01-01
    • 2011-02-25
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 2012-12-26
    • 1970-01-01
    • 2021-01-15
    相关资源
    最近更新 更多