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

问题描述 投票:0回答:1

我正在使用一项服务,要求所有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的第一页设置了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,以使所有内容都能以MediaBox页面大小呈现?

这是我的Ghostscript版本:

GPL Ghostscript 9.26 (2018-11-20)
ghostscript
1个回答
0
投票

好吧,我发现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中有一种更好的方法,而不是通过直接文本编辑来破坏文件,但目前它正在运行,并且我正在使用的服务现在正在接受文件。

© www.soinside.com 2019 - 2024. All rights reserved.