我最近设置了一个Linux服务器,可以使用pdftotext
命令将基于文本的PDF转换为文本,该命令是Xpdf的一部分,也可以使用以下方法将基于图像的PDF转换为文本gs
(Ghostscript)和tesseract
命令的组合。
当我已经知道PDF是基于文本还是基于图像时,两种解决方案都能很好地工作。但是,为了自动化将许多PDF转换为文本的过程,我需要能够判断PDF是基于文本还是基于图像,以便我知道在PDF上运行哪组过程。
PHP中有没有办法分析PDF并判断它是基于文本还是基于图像,以便我知道是否使用Xpdf或Ghostscript / Tesseract?
答案 0 :(得分:1)
我认为Kurt Pfeifle here的答案很棒:使用pdffonts
-也是Xpdf / Poppler的一部分-列出PDF使用的字体。
如果使用任何字体,则包含文本。如果没有,则仅包含图像。
答案 1 :(得分:0)
比较输出并判断OCR运行的结果文本是否与Xpdf运行的输出相同是一项非常重要的任务。对于不可OCRable的PDF文本(例如非常小的字母),文本可以通过xpdf提取,你甚至会以很多不必要的胡言乱语结束。
我建议从PDF和OCR中提取图像,而不是完整的PDF。这样
由于您已经在使用xpdf,因此可以使用pdfimages -all
来提取图像。
[1]这不是100%正确,因为PDF可能是夹在中的PDF,其中图像后面已经有一个OCR文本层。