我有一个 PDF 文件,我想更改其页面大小;我们就这么称呼它吧file.pdf
。我得到了另一个 PDF 文件,它将作为模型file.pdf
;我们就这么称呼它吧model.pdf
。
澄清一下:我希望的页面与的页面file.pdf
同等。model.pdf
使用pdfinfo
onmodel.pdf
我得到以下相关信息:
Tagged: no
Form: none
Pages: 22
Encrypted: no
Page size: 612 x 783 pts
Page rot: 0
MediaBox: 0.00 0.00 720.00 891.00
CropBox: 54.00 54.00 666.00 837.00
BleedBox: 54.00 54.00 666.00 837.00
TrimBox: 54.00 54.00 666.00 837.00
ArtBox: 54.00 54.00 666.00 837.00
File size: 3324788 bytes
Optimized: no
PDF version: 1.7
Run Code Online (Sandbox Code Playgroud)
我不太明白这些字段的前两列是什么*Box
意思,但是通过谷歌搜索,我得出的结论是我的目标是该字段的最后两列MediaBox
。所以,我想file.pdf
成为720x891
,并且我认为单位是pts
。
所以我找到了这个名为 which 的工具,pdfposter
它应该能够更改 PDF 页面的大小,我就这样做了(注意我已经将点转换为英寸):
pdfposter -m10x12.375inch file.pdf new_file.pdf
Run Code Online (Sandbox Code Playgroud)
一切都很顺利,但是当我检查时new_file.pdf
我pdfinfo
得到:
Tagged: no
Form: none
Pages: 32
Encrypted: no
Page size: 630.22 x 891 pts
Page rot: 0
MediaBox: 54.33 32.60 774.33 923.60
CropBox: 54.33 32.60 684.55 923.60
BleedBox: 54.33 32.60 684.55 923.60
TrimBox: 54.33 32.60 630.22 891.00
ArtBox: 54.33 32.60 630.22 891.00
File size: 3005203 bytes
Optimized: no
PDF version: 1.3
Run Code Online (Sandbox Code Playgroud)
显然出了问题,因为新 PDF 页面的大小是 ,774.33x923.60
而不是720x891
;此外,前两列MediaBox
从 改为0.00 0.00
,54.33 32.60
我不知道为什么或它意味着什么。
我也尝试过使用pdfjam
,但它只是在边框上添加了更多空白,同时保持 PDF 的内容不变。
所以我的问题是:如何将我的页面大小更改file.pdf
为model.pdf
.
注意:对我来说,调整大小后的 PDF 与原始 PDF 具有相同的质量非常重要。
您可以使用 pdfjam 和--papersize
参数来设置输出纸张尺寸。如果您想做的不仅仅是一起调整页面及其内容的大小,您可能还需要使用--scale
和。--offset
pdfjam --papersize="$(LC_ALL=C pdfinfo model.pdf | LC_ALL=C awk '/^Page size:/ {printf "{%fbp,%fbp}", $3, $5}')" file.pdf new_file.pdf
Run Code Online (Sandbox Code Playgroud)