2012-01-02 21 views
1

我找到了Aspose,iTextRTF資源。 Aspose不是開源的。 iTextRTF找不到jar包含RtfWriter2 ..? jRTF資源比較RTF文件..? 您的幫助是高度讚賞。提前瞭解。用於兩個RTF文件的Java中的OpenSource API比較

+0

你想要比較什麼?只有文字或圖像和聲音等嵌入式對象?文本的格式應該相同還是可以忽略?輸出如何?只有在文件相同或不相同的情況下才會回答是/否,或者輸出不同的每一行? – THelper 2012-01-20 12:23:23

+0

只有文本,文本格式相同 – 2012-01-20 12:42:00

回答

0

據我所知,沒有免費的圖書館支持這一點。但是你自己創建一個基本的比較函數可能並不那麼難。您可以在RTF文件中讀取,然後提取這樣的文字:

// read rtf from file 
JEditorPane p = new JEditorPane(); 
p.setContentType("text/rtf"); 
EditorKit rtfKit = p.getEditorKitForContentType("text/rtf"); 
rtfKit.read(new FileReader(fileName), p.getDocument(), 0); 
rtfKit = null; 

// convert to text 
EditorKit txtKit = p.getEditorKitForContentType("text/plain"); 
Writer writer = new StringWriter(); 
txtKit.write(writer, p.getDocument(), 0, p.getDocument().getLength()); 
String documentText = writer.toString(); 

使用text/plain在第2編輯器工具包中提取純文本(不帶格式)和text/html提取文本保留(大部分)的格式。編輯工具包將忽略任何圖像,因此您不必擔心這一點。 對兩個文件執行此操作,然後只比較生成的html或兩個文件的文本。