我需要从服务器上的PDF文件中提取所有图像。我不想要PDF页面,只需要原始尺寸和分辨率的图像。
我如何使用Perl,PHP或任何其他基于UNIX的应用程序(我将使用PHP的exec函数调用)来执行此操作?
答案 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