2

我需要在 unix 工具中获取多页 tiff 和 pdf 中每一页的信息。一些解决方案给出了 pdf_info.ps (我在这个主题中给出了答案),但它只适用于 pdf。请帮帮我。

另外我怎么不能允许打印大于 A4 格式的文件?谢谢!

TIFF 的解决方案:

  • 对于 tiff(也是多页 tiff),使用 tiffinfo lib(LibTIFF 的一部分)
4

1 回答 1

2

您可以使用identifyImageMagick 包中的命令来获取页面大小。它可以一次性使用不同的文件(即使是不同的文件类型):

identify multipage.*

样本输出:

multipage.pdf[0] PDF 421x595 421x595+0+0 16-bit Bilevel DirectClass 31.6KB 0.000u 0:00.000
multipage.pdf[1] PDF 421x595 421x595+0+0 16-bit Bilevel DirectClass 31.6KB 0.000u 0:00.000
multipage.pdf[2] PDF 421x595 421x595+0+0 16-bit Bilevel DirectClass 31.6KB 0.000u 0:00.000
multipage.pdf[3] PDF 421x595 421x595+0+0 16-bit Bilevel DirectClass 31.6KB 0.000u 0:00.000
multipage.tif[0] TIFF 1728x2156 1728x2156+0+0 1-bit Bilevel DirectClass 3.02KB 0.000u 0:00.000
multipage.tif[1] TIFF 1728x2156 1728x2156+0+0 1-bit Bilevel DirectClass 3.02KB 0.000u 0:00.000
multipage.tif[2] TIFF 1728x2156 1728x2156+0+0 1-bit Bilevel DirectClass 3.02KB 0.000u 0:00.000

有 1 个 4 页的 PDF(每个大小为 A5 == 421x595 pt)和一个 3 页的 TIFF(1728x2156 像素的回显页)。

您甚至可以自定义输出格式identify以满足您的需求:

identify -format "%f: Page-Number: %p --  Width: %W -- Height: %H\n" multipage.*

现在输出:

multipage.pdf: Page-Number: 0 --  Width: 421 -- Height: 595
multipage.pdf: Page-Number: 1 --  Width: 421 -- Height: 595
multipage.pdf: Page-Number: 2 --  Width: 421 -- Height: 595
multipage.pdf: Page-Number: 3 --  Width: 421 -- Height: 595
multipage.tif: Page-Number: 0 --  Width: 1728 -- Height: 2156
multipage.tif: Page-Number: 1 --  Width: 1728 -- Height: 2156
multipage.tif: Page-Number: 2 --  Width: 1728 -- Height: 2156

请注意,页面/图像编号的默认输出是从 0 开始的。


更新:

我应该已经在这个答案的第一个版本中提到:

  1. identify返回 PDF 的页面信息时可能会相当慢(多页 TIFF 可以)。

  2. 对于 PDF 页面信息,您最好使用pdfinfo -f 1 -l 33 file.pdf. 这将返回有关 PDF 的各种元数据,以及从 1 到 33 范围内的每个页码的大小(如果您使用的是 Poppler 的最新版本,pdfinfo而不是 XPDF 的!),那么您甚至可以获得旋转状态页)。

所以:为工作使用正确的工具:对于多页 TIFF,它是identify,对于 PDF,它是pdfinfo.

于 2012-07-11T16:59:07.233 回答