如何在unix中使用ghostscrpt或其他解决方案获取多页tiff和pdf的页面大小?

问题描述:

我需要在unix工具中,获取多页tiff和pdf中每个页面的信息。一些解决方案给予pdf_info.ps(我在this topic中回答),但它仅适用于pdf。请帮帮我。如何在unix中使用ghostscrpt或其他解决方案获取多页tiff和pdf的页面大小?

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

解决方案TIFF:

  • 对于TIFF(也多页TIFF)使用tiffinfo LIB(的libtiff的一部分)
+0

你在寻找一个命令行工具还是代码库? – BitBank 2012-07-11 15:44:58

+0

任何东西,因为我需要的结果)) – MikeLP 2012-07-12 09:35:48

+0

'tiffinfo'不是Poppler设备的一部分。它是LibTIFF的一部分(与Poppler无关)。 – 2012-08-11 21:32:42

您可以从ImageMagick软件包使用identify命令来获得页面大小。它可以一次性消费不同的文件(甚至是不同的文件类型):

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个PDF,4页(每页大小的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

+0

感谢您的好主意!我会尽量使用它!但不幸的是,我的硬件资源有限(使用pbx),我需要使用imagemagic测试CPU花费的数量。 – MikeLP 2012-07-12 09:33:31

+0

@MikeL:只要你使用'identify',它不应该是CPU的大负载。但是,要安装ImageMagick,它可能会吸引很多依赖项,以便它可以运行...因此,可能磁盘空间可能会成为您的关注点。假设大约有100多MB ... – 2012-07-12 10:59:39