对于脚本,我需要获取 PDF 文件的页面尺寸(以毫米为单位)。
pdfinfo
只需将其打印在“pts”中,例如:
Page size: 624 x 312 pts
Run Code Online (Sandbox Code Playgroud)
我应该使用什么?
或者无论如何单位是'pts' - 如果我想转换它们......
max*_*zig 40
使用的“pts”单位pdfinfo
表示 PostScript 点。甲的PostScript点是在一英寸和每英寸72点的分辨率来定义的:
80年代末至1990年代,传统点被桌面出版点(也称为PostScript点)所取代,定义为72点到英寸(1点=1?72英寸=25.4?72毫米= 0.352) ¯7 毫米[ ? 0.3528 毫米])。
该手册gv
包含在 PostScript 点中指定的常见纸张格式列表。
Axe*_*auf 17
不是最简单的方法,但给定imagemagick
,units
你也可以使用
$ identify -verbose some.pdf | grep "Print size"
Print size: 8.26389x11.6944
Run Code Online (Sandbox Code Playgroud)
找到以英寸为单位的页面大小(如果 PDF 使用不同的尺寸,这可能会产生多种结果),然后像这样转换数字:
$ units -t '8.26389 inch' 'mm'
209.90281
Run Code Online (Sandbox Code Playgroud)
这意味着 8.26 英寸是 209.9 毫米(为此我使用了 A4 PDF)。
小智 6
遇到了同样的问题,并得出了以下解决方案。我没有深入了解如何构建 pdf 文件的文档,我只是比较了两个具有不同页面大小的空 pdf 文件。
看起来pdfs在“<<”和“>>”之间嵌入了各种属性。我发现页面大小信息以纯文本形式存在,可以通过简单的正则表达式搜索找到。
这可能适用于也可能不适用于所有 pdf,但它适用于我可以从不同来源找到的所有内容。
对于 A4 尺寸的页面,相关部分可能类似于以下任何部分:
/MediaBox [0 0 595 842]
/MediaBox[0 0 595 842]
/MediaBox[ 0 0 595.32 841.92]
Run Code Online (Sandbox Code Playgroud)
这意味着 [0 0 宽度高度] 所以这是我的超级蹩脚但有效的解决方案来提取这个:
cat test.pdf | egrep -ao "/MediaBox ?\[ ?[0-9]+ [0-9]+ [0-9]+(\.[0-9]+)? [0-9]+(\.[0-9]+)?\]" | head -1
Run Code Online (Sandbox Code Playgroud)
只需将 test.pdf 更改为您的文件。