2013-06-20 33 views
5

有誰知道一個強大的RTF分析器,我可以在Java中使用的?我需要提取純文本,包括國際文本。提取嵌入的圖像和文件也很好。它也可以是我可以輕鬆調用的C++或其他庫,或者如果有良好的源代碼,我可以轉換爲Java。Java的RTF分析器

以下庫不包括足夠的RTF,或者無法解析一些有效的RTFS

  1. 的Java Swing的RTFEditorKit,很基本的,脆 阿帕奇Tikka說Nutch的,和許多其他工具的使用。
  2. 從iText的(com.lowagie.etc ...),不是太全面
  3. e思達RTF庫(這是最完整的java的那些)的 不知道是否有更新的版本,而是一個RTF庫我的某些rtf集合(RTF是有效的,至少它們在MsWord和OpenOffice OK中打開)失敗了。

有一個C#庫合理完整,但唉...它是C#而不是Java。 http://www.codeproject.com/Articles/27431/Writing-Your-Own-RTF-Converter

我也研究過OpenOffice,它對我所需要的來說太慢了,雖然它可能非常全面。在發佈這個問題之前,我做了網絡搜索和堆棧溢出搜索,所以如果你是指的是一個古老的「已經問過」的帖子,那麼它可能沒有答案。但是隨意指出它出,如果我錯過了!)

回答

2

如果你的項目是非商業性的,然後有一個很好的免費的Java RTF格式XML庫here,比在我看來e思達更好,你可以處理來自那裏的XML 。但是,如果您將其用於商業用途,則必須與開發該公司的rtf-to-xml.com進行授權。

然而有一次,過類似的情況,發現RTF到XML之前,我發現了一個有趣的工作,圍繞這個問題,當我需要在Linux服務器上解析MS RTF。有一個免費的富文本處理器,這也是庫called Ted它需要的參數從命令行用了用戶界面,並且可以包裹在JNI調用。

我希望這會有所幫助。

+0

我會檢查這些了,看他們是否辦理怪異/複雜的RTF文件我來過,並且將在這裏報到。 – Mary

+1

你的實驗過程如何。我正在研究一個項目,該項目的模板存儲在rtf中,我希望批量轉換。 – Revoman

+0

對不起已故的答覆,但JNI封裝摸索出出奇的好,翻譯是快射後不理內存中沒有掛出有點像一個未緩存調用C。 –

4

您可能會發現RTF Parser Kit有用。它提供了一個基於流的解析器,在解析文檔時將事件傳遞給您。提供了一個簡單的示例文本提取器,它演示瞭如何使用API​​。