如何从PDF文件中提取图像?

时间:2009-01-10 07:30:04

标签: php perl pdf

我需要从服务器上的PDF文件中提取所有图像。我不想要PDF页面,只需要原始尺寸和分辨率的图像。

我如何使用Perl,PHP或任何其他基于UNIX的应用程序(我将使用PHP的exec函数调用)来执行此操作?

3 个答案:

答案 0 :(得分:22)

pdfimages就是这么做的。它是poppler-utils和xpdf-utils包的一部分。

从联系手册:

  

  Pdfimages将可移植文档格式(PDF)文件中的图像保存为便携式像素图(PPM),便携式位图(PBM)或JPEG文件。   

     

  Pdfimages读取PDF文件,扫描一个或多个页面,PDF文件,并为每个图像写入一个PPM,PBM或JPEG文件,image-root-nnn.xxx,其中nnn是图像编号,xxx是图像类型(.ppm,。pbm,.jpg)。   

     

  注意:pdfimages从PDF文件中提取原始图像数据,而不执行任何其他转换。由PDF内容流完成的任何旋转,剪切,颜色反转等都将被忽略。   

答案 1 :(得分:11)

关于Perl,您检查了CPAN吗?

答案 2 :(得分:2)

pdfimages非常好,因为它不会重新编码,只能提取jpeg。但是有一个错误:

pdfimages来自包“poppler-utils”或更大的“xpdf-utils”。至少在Ubuntu中,“poppler-utils”已经预先安装好了。 poppler-utils 10.0.3(Ubuntu 9.04 Jaunty)中的pdfimages仍然没有对选项“-j”做出反应来提取“.jpg”。它总是提取“.ppm”。

作为一种解决方法,您可以将“poppler-utils”替换为“xpdf-utils”: $ sudo apt-get install xpdf-utils

亲切的问候,

+++ Oliver