如何检测文档中的图像,例如doc,xls,ppt或pdf?
我遇到了Apache Tika,我正在尝试它的命令行选项。http://tika.apache.org/1.2/gettingstarted.html
但不太确定它将如何检测图像。
任何帮助,不胜感激。
谢谢
你说过你想使用命令行解决方案,而不是编写任何 Java 代码,所以它不会是最漂亮的方法......如果你很乐意写一点Java,并创建一个从Python调用的新程序,那么你可以做得更好!
首先要做的是让 Tika 应用程序提取出文件中的任何嵌入式资源。为此使用 --extract
选项,并在您应用程序控制的特殊临时目录中进行提取,例如
$ java -jar tika.jar --extract ../testWORD_embedded_pdf.doc
Extracting 'image1.emf' (application/x-emf)
Extracting '_1402837031.pdf' (application/pdf)
如果可以的话,获取提取的输出,并解析该图像以查找图像(但请注意,某些图像在其圆锥形 mimetype 上具有 application/
前缀!您可能需要对几个(我不确定)运行第二个 --detect 步骤,测试解析器如何进行提取。
现在,如果有图像,它们将出现在您的测试目录中。最后,完成文件后删除临时目录!
过去使用Tika后,我看不出Tika如何帮助嵌入Office文档或PDF中的图像,我错误地回答"否"。您可能仍然可以尝试解析为Apache POI和Apache PDFBox等本机API。Tika 确实使用这两个库来解析文本和元数据,但没有嵌入式图像支持。
使这些 API 自动可用(使用 Tika 的副作用)。
更新:从 Tika 0.8 开始:寻找 EmbeddedResourceHandler 和示例 - 感谢 Gagravarr。