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