有人知道我可以在 Java 中使用的强大的 RTF 解析器吗?我需要提取纯文本,包括国际文本。提取嵌入的图像和文件也很好。它也可以是我可以轻松调用的 C++ 或其他库,或者如果有好的源代码,我可以转换为 Java。
以下库没有涵盖足够多的 RTF,或者无法解析某些有效的 RTF
- Java Swing 的 RTFEditorKit,非常基础且脆弱 Apache Tikka、nutch 和许多其他工具都使用它。
- 来自 iText (com.lowagie.etc...) 的 RTF 库,不太全面
- etranslate rtf 库(这是最完整的 java 库) 不确定是否有更新版本,但我得到的版本在我的一些 rtf 集合上失败(RTF 是有效的,至少它们在 MsWord 和 OpenOffice 中打开 OK)。
有一个相当完整的 C# 库,但可惜......它是 C# 而不是 Java。 http://www.codeproject.com/Articles/27431/Writing-Your-Own-RTF-Converter
我还研究了 OpenOffice,虽然它可能非常全面,但它对于我需要的东西来说太慢了。
(在发布这个问题之前,我确实进行了网络搜索和堆栈溢出搜索,所以如果你指的是一个古老的“已经问过”的帖子,那里可能没有答案。但请随时指出,以防我错过了!)
最佳答案
您可能会发现 RTF Parser Kit有用。它提供了一个基于流的解析器,在解析文档时向您传送事件。提供了一个简单的示例文本提取器,它演示了如何使用 API。
关于Java RTF 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17223903/