【问题标题】:How do I resize a PDF to be exactly 8.5 x 11 inches using Ghostscript?如何使用 Ghostscript 将 PDF 的大小调整为 8.5 x 11 英寸?
【发布时间】:2015-01-15 02:59:09
【问题描述】:

考虑this PDF。我正在尝试使用以下命令将其转换为标准字母大小 (8.5 x 11)。

gs -dFIXEDMEDIA -dBATCH -dNOPAUSE -sPAPERSIZE=letter \
   -dPDFFitPage -q -sDEVICE=pdfwrite -sOutputFile=out.pdf \
    dean08mapreduce.pdf

这里是pdfinfo 的输出。

Producer:       GPL Ghostscript 9.10
CreationDate:   Mon Nov 17 18:25:01 2014
ModDate:        Mon Nov 17 18:25:01 2014
Tagged:         no
Form:           none
Pages:          7
Encrypted:      no
Page size:      596.225 x 792 pts
Page rot:       0
File size:      126908 bytes
Optimized:      no
PDF version:    1.4

这里是pdfinfo原文:

Producer:       Creo Normalizer JTP
CreationDate:   Fri Dec 21 09:09:07 2007
ModDate:        Fri Dec 21 14:46:23 2007
Tagged:         no
Form:           AcroForm
Pages:          7
Encrypted:      no
Page size:      603 x 801 pts
Page rot:       0
File size:      235239 bytes
Optimized:      yes
PDF version:    1.3

请注意,输出的高度正确但宽度不正确。它实际上是8.3 x 11,而不是8.5 x 11

我尝试了herehere 的解决方案,但都没有达到我的要求。

如何强制 PDF 完全为 8.5 x 11

我不介意它是否需要在两边添加一点空格。

【问题讨论】:

    标签: pdf ghostscript


    【解决方案1】:

    双重转换不是一个好计划,你可能会在每一步都引入问题,尤其是 PostScript 不支持 PDF 的图形模型(特别是它不支持透明度)

    您的问题是原始 PDF 文件包含一个 CropBox,它由 Ghostscript pdfwrite 设备保留。 pdfinfo 的输出会告诉您 PDF 文件的大小,并将 CropBox 考虑在内。 MediaBox 实际上是 612x792,即 8.5x11,这正是您想要的。

    给定高度不同的原因是因为新的MediaBox在原来的CropBox里面,所以它是给定的两个盒子的交集。

    如果您不想保留 CropBox,则必须构建一个新的 CropBox Page 或 PAGES pdfmark 并将其作为 PostScript 发送。这并非完全不重要。在您的情况下,每个页面都有一个 CropBox (它不是整个文档的单个默认值),因此您需要覆盖每个页面上的 CropBox。为此,您需要定义一个 /EndPage 过程,该过程使用 pdfmark 设置所需的 CropBox,并在处理 PDF 文件之前发送该过程。

    这个:

    gs -sDEVICE=pdfwrite \
       -dDEVICEWIDTHPOINTS=612 -dDEVICEHEIGHTPOINTS=792 -dFIXEDMEDIA \
       -sOutputFile=out.pdf \
       -c "<</EndPage {0 eq {[/CropBox [0 0 612 792] /PAGE pdfmark true}{false}ifelse}>> setpagedevice" \
       -f dean08mapreduce.pdf
    

    为我工作。

    【讨论】:

      猜你喜欢
      • 2011-11-18
      • 2021-11-29
      • 1970-01-01
      • 2015-03-29
      • 2015-08-05
      • 2011-06-04
      • 2015-04-27
      • 1970-01-01
      • 2016-08-07
      相关资源
      最近更新 更多