2012-08-13 86 views
3

如何检测文档中的图像,如doc,xls,ppt或pdf?如何检测文档中的图像

我遇到了Apache Tika,我正在尝试它的命令行选项。 http://tika.apache.org/1.2/gettingstarted.html

但是不太清楚它将如何检测图像。

任何帮助表示赞赏。

感谢

+0

你想要一个纯粹的命令行解决方案,还是很乐意编写一些Java? – Gagravarr 2012-08-13 11:45:27

+0

@ Gagravarr我想要命令行解决方案,因为我想使用Tika和Python。 – pratz 2012-08-14 09:21:23

回答

3

你说你想使用命令行解决方案,而不是编写任何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) 

抓住提取的输出,如果你能,并解析需要的图片(但要注意,一些图像的canconical mimetype上有一个application/前缀!)。您可能需要对少数几个人进行第二步检测,我不确定,测试解析器如何继续提取。

现在,如果有图像,它们将在您的测试目录中。按照你的想法处理它们。最后,当你完成文件时,打开临时目录!

+0

谢谢兄弟,这很好。我可以只获取图像的信息吗?我不想将它们解压到一个目录。可能吗? – pratz 2012-08-16 10:57:37

+0

是的,你可以做到这一点,但只有你写了一些Java代码!如果你只想使用Tika-App命令行工具,那么稍后提取和清理是唯一的方法 – Gagravarr 2012-08-16 11:11:33

+0

我想知道你是否可以发布链接或代码来检测使用tika库的文件中的图像。 – 2013-11-24 12:57:43

0

曾使用蒂卡过去 我看不到提卡如何与嵌入Office文档或PDF 我错了回答不可以。你 内的图像帮助将有可能 仍然尝试解析为本地API,如Apache POI和Apache PDFBox。 Tika确实使用这两个库来解析文本和元数据,但没有嵌入式图像支持。

使用Tika使这些API自动可用(使用Tika的副作用)。

UPDATE: 由于提卡0.8:寻找EmbeddedResourceHandler和例子 - 由于Gagravarr。

+0

除了Apache Tika之外,您还可以推荐其他任何工具吗? – pratz 2012-08-14 09:21:53

+1

这是不正确的,Tika处理嵌入式资源就好了! – Gagravarr 2012-08-14 10:49:51

+0

@Gagravarr - 感谢您纠正我 - 添加链接到适当的Tika界面。 – topchef 2012-08-14 23:06:28