Java RTF Parser

时间:2013-06-20 21:14:04

标签: java parsing rtf

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

以下库未涵盖足够的RTF,或无法解析某些有效的RTF

  1. Java Swing的RTFEditorKit,相当基本和脆弱 Apache Tikka,nutch和许多其他工具都使用它。
  2. iText的一个RTF库(com.lowagie.etc ...),不太全面
  3. etranslate rtf库(这是java中最完整的) 不确定是否有更新的版本,但我的部分rtf集合上的版本失败(RTF有效,至少它们在MsWord和OpenOffice中打开)。
  4. 有一个相当完整的C#库,但唉...它是C#而不是Java。 http://www.codeproject.com/Articles/27431/Writing-Your-Own-RTF-Converter

    我也研究过OpenOffice,它对于我需要的东西来说太慢了,虽然它可能非常全面。

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

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:2)

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

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

我希望这会有所帮助。