2013-06-20 16 views
5

Qualcuno sa di un parser RTF affidabile che posso usare in Java? Devo estrarre testo normale, incluso il testo internazionale. Sarebbe anche bello estrarre immagini e file incorporati. Potrebbe anche essere un C++ o altra libreria che posso facilmente chiamare, o se c'è un buon codice sorgente, posso convertirlo in Java.Parser RTF Java

Le seguenti librerie non coprono abbastanza il RTF, o non riescono a analizzare alcuni validi RTFs

  1. RTFEditorKit di Java Swing, piuttosto semplice e fragile Apache Tikka, Nutch, e un sacco di altri strumenti di utilizzare questo.
  2. una libreria RTF da iText (com.lowagie.etc ...), non troppo completo
  3. biblioteca rtf eTranslate (questo è il più completo di quelli java) Non so se v'è una versione aggiornata, ma la versione non ha funzionato su alcune delle mie raccolte rtf (gli RTF sono validi, almeno si aprono in MsWord e OpenOffice OK).

C'è una libreria C# che è abbastanza completa, ma ahimè ... è C# e non Java. http://www.codeproject.com/Articles/27431/Writing-Your-Own-RTF-Converter

Ho anche cercato in OpenOffice, è troppo lento per quello che mi serve, anche se è probabilmente molto completo.

(Ho fatto ricerche sul Web e sovrappongo ricerche di overflow prima di postare questa domanda, quindi se mi stai riferendo a un post "già chiesto" antico, probabilmente non ha una risposta lì. Ma sentiti libero di puntarlo fuori, nel caso in cui ho perso!)

risposta

2

Se il progetto è non commerciale, allora c'è una buona rtf Java libero di libreria XML here, meglio di eTranslate a mio parere, e si può elaborare l'XML da lì . Tuttavia, se lo si utilizza per scopi commerciali, è necessario organizzare la licenza con rtf-to-xml.com, la società che lo ha sviluppato.

Tuttavia, una volta in una situazione simile, prima di trovare rtf-to-xml, ho trovato un divertente aggiramento per questo problema quando ho bisogno di analizzare ms rtf sul server linux. Esiste un elaboratore RTF gratuito, che è anche una libreria called Ted Prende argomenti dalla riga di comando senza l'interfaccia utente e può essere incluso nella chiamata JNI.

Spero che questo aiuti.

+0

Verificherò questo per vedere se gestiscono i file RTF strani/complessi che sto incontrando e riporterò qui. – Mary

+1

Come sono venuti i tuoi esperimenti. Sto lavorando a un progetto che ha modelli memorizzati in rtf che vorrei convertire in batch. – Revoman

+0

Ci scusiamo per la risposta tardiva, ma il wrapper JNI ha funzionato sorprendentemente bene, le traduzioni sono state un fuoco veloce e non si dimentica di uscire in memoria come una chiamata C non collegata. –

4

È possibile trovare utile RTF Parser Kit. Fornisce un parser basato sul flusso che fornisce gli eventi mentre il documento viene analizzato. È disponibile un semplice esempio di estrattore di testo che dimostra come l'API può essere utilizzata.