您可以使用pdfinfo(poppler-utils或xpdf-tools的一部分)或识别(ImageMagick工具包的一部分).
识别:
identify -format "%f Page %s: Width: %W -- Height: %H\n" T-VD7.PDF
示例输出:
T-VD7.PDF Page 0: Width: 595 -- Height: 842 T-VD7.PDF Page 1: Width: 595 -- Height: 842 T-VD7.PDF Page 2: Width: 1191 -- Height: 842 [...] T-VD7.PDF Page 11: Width: 595 -- Height: 421 T-VD7.PDF Page 12: Width: 595 -- Height: 842
还是有点简单:
identify -format "%s: %Wx%H\n" T-VD7.PDF
得到:
0: 595x842 1: 595x842 2: 1191x842 [...] 11: 595x421 12: 595x842
注意,如何识别使用零页面计数机制!
如果宽度大于其高度,页面是“景观”.他们既不是,也不是,如果两者都是平等的.
优点是识别可以让您轻松,广泛地调整输出格式.
pdfinfo:
pdfinfo input.pdf | grep "Page.*size:"
示例输出:
Page size: 595.276 x 841.89 pts (A4)
如果涉及到多页PDF,pdfinfo肯定比识别更快,更准确. (13页的PDF我测试了,需要识别31秒来处理,而pdfinfo需要不到半秒….)
警告:默认情况下,pdfinfo仅报告第一页的大小.要获取所有页面的大小(您可能知道,有使用混合页面大小和混合方向的PDF),您必须修改命令:
pdfinfo -f 3 -l 13 input.pdf | grep "Page.*size:"
现在输出:
Page 1 size: 595.276 x 841.89 pts (A4) Page 2 size: 595.276 x 841.89 pts (A4) Page 3 size: 1191 x 842 pts (A3) [....] Page 12 size: 595 x 421 pts (A5) Page 13 size: 595.276 x 841.89 pts (A4)
这将打印第3页(首先报告)到第13页的大小(l ast报告).
脚本:
pdfinfo \ -f 1 \ -l 1000 \ Vergleich-VD7.PDF \ | grep "Page.* size:" \ | \ | while read Page _pageno size _width x _height rest; do [ "$(echo "${_width} / 1"|bc)" -gt "$(echo "${_height} / 1"|bc)" ] \ && echo "Page $_pageno is landscape..." \ || echo "Page $_pageno is portrait..." ; \ done
(bc-trick是必需的,因为-gt比较只对整数使用,除以1和bc之间的比例可以将可能的实数值乘以整数…)
结果:
Page 1 is portrait... Page 2 is portrait... Page 3 is landscape... [...] Page 12 is landscape... Page 13 is portrait...
更新:使用’正确’pdfinfo来发现页面旋转…
我的初步答案是pdfinfo的号角.小夜曲X在评论中说,他/她的问题是发现旋转的页面.
好的,现在,这里还有一些尚未被广泛使用的附加信息,而且还没有真正被所有pdfinfo用户所吸收.
正如我所提到的,有两个不同的pdfinfo工具:
>作为xpdf-utils包的一部分(在某些平台上也称为xpdf-tools)的那个.
>作为poppler-utils软件包的一部分(在某些平台上也称为poppler-tools,有时它不会被分离为一个包,而是主要的poppler包的一部分).
Poppler的pdfinfo输出
所以这里是Poppler的pdfinfo命令的输出示例.测试文件是一个2页的PDF,其中第一页是肖像A4,第二页是横向A4格式:
kp@mbp:~$ pdfinfo -f 1 -l 2 a4portrait+landscape.pdf Producer: GPL Ghostscript 9.05 CreationDate: Thu Jul 26 14:23:31 2012 ModDate: Thu Jul 26 14:23:31 2012 Tagged: no Form: none Pages: 2 Encrypted: no Page 1 size: 595 x 842 pts (A4) Page 1 rot: 0 Page 2 size: 842 x 595 pts (A4) Page 2 rot: 0 File size: 3100 bytes Optimized: no PDF version: 1.4
你看到这样一句话,说:1:rot:0和Page 1 rot:0?
你是否注意到这样的一行:第一页大小:595 x 842点(A4)和尺寸:842 x 595点(A4)和两者之间的差异?
XPDF的pdfinfo输出
现在我们来比较XPDF的pdfinfo的输出:
kp@mbp:~$ xpdf-pdfinfo -f 1 -l 2 a4portrait+landscape.pdf Producer: GPL Ghostscript 9.05 CreationDate: Thu Jul 26 14:23:31 2012 ModDate: Thu Jul 26 14:23:31 2012 Tagged: no Pages: 2 Encrypted: no Page 1 size: 595 x 842 pts (A4) Page 2 size: 842 x 595 pts (A4) File size: 3100 bytes Optimized: no PDF version: 1.4
您可能会注意到另外一个区别,如果你仔细看.我不会指着我的手指,现在我会闭嘴…