将所有 PDF 页面调整为字母大小 - 如何调整或删除 CropBox?

Resize all PDF pages to letter size - how to resize or remove CropBox?

我使用的服务要求所有 PDF 页面的大小完全相同。现在,我的 PDF 的第二页是美国信纸大小,但第一页比它小一点 - 我希望第一页也是信纸大小。

Here's a sample PDF 我开始的内容。以下是 pdfinfo 关于此文件开头的内容:

Creator:        pdftk 2.02 - www.pdftk.com
Producer:       itext-paulo-155 (itextpdf.sf.net-lowagie.com)
CreationDate:   Fri Jun  5 11:37:13 2020 CDT
ModDate:        Fri Jun  5 11:37:13 2020 CDT
Tagged:         no
UserProperties: no
Suspects:       no
Form:           AcroForm
JavaScript:     no
Pages:          2
Encrypted:      no
Page    1 size: 576 x 755.999 pts
Page    1 rot:  0
Page    2 size: 612 x 792 pts (letter)
Page    2 rot:  0
Page    1 MediaBox:     0.00     0.00   576.00   756.00
Page    1 CropBox:      0.00     0.00   576.00   756.00
Page    1 BleedBox:     0.00     0.00   576.00   756.00
Page    1 TrimBox:      0.00     0.00   576.00   756.00
Page    1 ArtBox:      44.83   151.48   534.17   576.50
Page    2 MediaBox:     0.00     0.00   612.00   792.00
Page    2 CropBox:      0.00     0.00   612.00   792.00
Page    2 BleedBox:     0.00     0.00   612.00   792.00
Page    2 TrimBox:      0.00     0.00   612.00   792.00
Page    2 ArtBox:       0.00     0.00   612.00   792.00
File size:      484669 bytes
Optimized:      no
PDF version:    1.

我的第一次尝试是这样的:

gs -dBATCH -dNOPAUSE -q \
  -sPAPERSIZE=letter -dFIXEDMEDIA -dPDFFitPage \
  -sDEVICE=pdfwrite -sOutputFile=/tmp/output.pdf \
  /tmp/input.pdf

下面是 pdfinfo 对输出的描述:

Creator:        pdftk 2.02 - www.pdftk.com
Producer:       GPL Ghostscript 9.26
CreationDate:   Fri Jun  5 11:46:15 2020 CDT
ModDate:        Fri Jun  5 11:46:15 2020 CDT
Tagged:         no
UserProperties: no
Suspects:       no
Form:           none
JavaScript:     no
Pages:          2
Encrypted:      no
Page    1 size: 603.429 x 792 pts
Page    1 rot:  0
Page    2 size: 612 x 792 pts (letter)
Page    2 rot:  0
Page    1 MediaBox:     0.00     0.00   612.00   792.00
Page    1 CropBox:      4.29     0.00   607.71   792.00
Page    1 BleedBox:     4.29     0.00   607.71   792.00
Page    1 TrimBox:      4.29     0.00   607.71   792.00
Page    1 ArtBox:      51.25   158.69   563.89   603.95
Page    2 MediaBox:     0.00     0.00   612.00   792.00
Page    2 CropBox:      0.00     0.00   612.00   792.00
Page    2 BleedBox:     0.00     0.00   612.00   792.00
Page    2 TrimBox:      0.00     0.00   612.00   792.00
Page    2 ArtBox:       0.00     0.00   612.00   792.00
File size:      143412 bytes
Optimized:      no
PDF version:    1.7

此时我使用的服务仍然拒绝我的 PDF 页面大小不匹配,我猜是因为 PDF 的第 1 页设置了 CropBox。

此时我尝试使用以下命令将 CropBox 设置为与 MediaBox 相同的尺寸:

gs -dBATCH -dNOPAUSE -q \
  -sPAPERSIZE=letter -dFIXEDMEDIA -dPDFFitPage \
  -sDEVICE=pdfwrite -sOutputFile=/tmp/output.pdf \
  -c "[/CropBox [0 0 612 792] /PAGES pdfmark" \
  -f /tmp/input.pdf

但它似乎没有任何效果 - pdfinfo 仍然相同,只是文件大小在 143435 bytes 处稍大一些。

如何调整 PDF 的 CropBox 大小或删除 CropBox 以使所有内容以 MediaBox 页面大小呈现?

这是我的 Ghostscript 版本:

GPL Ghostscript 9.26 (2018-11-20)

好吧,我发现 this answer 包含使用 sed (!) 删除 CropBoxes 的方法,这似乎对我有用:

sed -i.bak -e "/CropBox/,/]/s#.# #g" /tmp/output.pdf

pdfinfo:

Creator:        pdftk 2.02 - www.pdftk.com
Producer:       GPL Ghostscript 9.26
CreationDate:   Fri Jun  5 12:03:07 2020 CDT
ModDate:        Fri Jun  5 12:03:07 2020 CDT
Tagged:         no
UserProperties: no
Suspects:       no
Form:           none
JavaScript:     no
Pages:          2
Encrypted:      no
Page    1 size: 612 x 792 pts (letter)
Page    1 rot:  0
Page    2 size: 612 x 792 pts (letter)
Page    2 rot:  0
Page    1 MediaBox:     0.00     0.00   612.00   792.00
Page    1 CropBox:      0.00     0.00   612.00   792.00
Page    1 BleedBox:     0.00     0.00   612.00   792.00
Page    1 TrimBox:      4.29     0.00   607.71   792.00
Page    1 ArtBox:      51.25   158.69   563.89   603.95
Page    2 MediaBox:     0.00     0.00   612.00   792.00
Page    2 CropBox:      0.00     0.00   612.00   792.00
Page    2 BleedBox:     0.00     0.00   612.00   792.00
Page    2 TrimBox:      0.00     0.00   612.00   792.00
Page    2 ArtBox:       0.00     0.00   612.00   792.00
File size:      143413 bytes
Optimized:      no
PDF version:    1.7

希望在 Ghostscript 中有更好的方法来执行此操作,而不是通过直接文本编辑来破坏文件,但现在它正在运行,我正在使用的服务现在正在接受该文件。