5

有人知道我可以在 Java 中使用的强大的 RTF 解析器吗?我需要提取纯文本,包括国际文本。提取嵌入的图像和文件也很好。它也可以是我可以轻松调用的 C++ 或其他库,或者如果有好的源代码,我可以转换为 Java。

以下库没有涵盖足够的 RTF,或者无法解析一些有效的 RTF

  1. Java Swing 的 RTFEditorKit、非常基本和脆弱的 Apache Tikka、nutch 和许多其他工具都使用它。
  2. 来自 iText (com.lowagie.etc...) 的 RTF 库,不太全面
  3. etranslate rtf 库(这是最完整的 java 库) )。

有一个相当完整的 C# 库,但可惜......它是 C# 而不是 Java。 http://www.codeproject.com/Articles/27431/Writing-Your-Own-RTF-Converter

我还研究了 OpenOffice,它对于我需要的东西来说太慢了,尽管它可能非常全面。

(在发布这个问题之前,我确实进行了网络搜索和堆栈溢出搜索,所以如果你指的是一个古老的“已经问过”的帖子,它可能在那里没有答案。但请随时指出,以防万一我错过了!)

4

2 回答 2

5

您可能会发现RTF Parser Kit很有用。它提供了一个基于流的解析器,在解析文档时向您传递事件。提供了一个简单的示例文本提取器,它演示了如何使用 API。

于 2013-12-11T14:51:29.107 回答
2

如果您的项目是非商业项目,那么这里有一个很好的免费 Java rtf to xml 库,在我看来比 etranslate 更好,您可以从那里处理 xml 但是,如果您将其用于商业目的,则必须与开发它的公司rtf-to-xml.com安排许可。

但是曾经遇到过类似的情况,在找到 rtf-to-xml 之前,当我需要在 linux 服务器上解析 ms rtf 时,我发现了一个有趣的解决方法。有一个免费的富文本处理器,它也是一个名为 Ted的库,它从命令行获取参数,没有用户界面,并且可以包装在 JNI 调用中。

我希望这有帮助。

于 2013-08-24T11:46:53.890 回答