【问题标题】:How to detect image in a document如何检测文档中的图像
【发布时间】:2012-08-13 10:45:31
【问题描述】:

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

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

但不太确定它将如何检测图像。

感谢任何帮助。

谢谢

【问题讨论】:

  • 你想要一个纯粹的命令行解决方案,还是愿意写一些Java?
  • @Gagravarr 我想要命令行解决方案,因为我想在 Python 中使用 Tika。

标签: apache apache-tika


【解决方案1】:

你说过你想使用命令行解决方案,而不是编写任何 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 步骤,我不确定,测试解析器如何进行提取。

现在,如果有图像,它们将在您的测试目录中。根据需要处理它们。最后,当你完成文件时,zap 临时目录!

【讨论】:

  • 谢谢老兄,很好。我可以只获取图像的信息吗?我不想将它们提取到目录中。可能吗?
  • 是的,您可以这样做,但前提是您必须编写一些 Java 代码!如果你只想使用 Tika-App 命令行工具来做,那么以后提取和清理是唯一的方法
  • 我想知道您是否可以发布使用 tika 库从文件中检测图像的链接或代码。
  • @MohamadGhafourian 这是一个完全不同的查询,因此您需要将其作为一个全新的问题提出
【解决方案2】:

过去使用过 Tika 我看不出 Tika 如何帮助处理 Office 文档或 PDF 中嵌入的图像我的回答是错误的,不。你 会有可能仍会尝试解析为 Apache POI 和 Apache PDFBox 等原生 API。 Tika 确实使用这两个库来解析文本和元数据,但不支持嵌入式图像。

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

更新: 从 Tika 0.8 开始:查找 EmbeddedResourceHandler 和示例 - 感谢 Gagravarr。

【讨论】:

  • 您能推荐除 Apache Tika 之外的任何其他工具吗?
  • 这是不正确的,Tika 处理嵌入式资源就好了!
  • @Gagravarr - 感谢您纠正我 - 添加了指向相应 Tika 界面的链接。
猜你喜欢
  • 2015-01-13
  • 2014-11-17
  • 1970-01-01
  • 1970-01-01
  • 2015-05-21
  • 2014-12-23
  • 2018-10-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多