Parser Java RTF

Qualcuno sa di un parser RTF robusto 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.

Le seguenti librerie non coprono abbastanza RTF o non riescono ad analizzare alcuni RTF validi

  1. RTFEditorKit di Java Swing, Apache Tikka abbastanza semplice e fragile, nutch e molti altri strumenti lo usano.
  2. una libreria RTF da iText (com.lowagie.etc …), non troppo completa
  3. libreria etranslate rtf (questa è la più completa di java) Non sono sicuro se c’è 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 OpenOffice, è troppo lento per quello di cui ho bisogno, anche se è probabilmente molto completo.

(Ho fatto ricerche sul web e ho accumulato ricerche di overflow prima di postare questa domanda, quindi se mi stai riferendo a un post “già chiesto”, probabilmente non ha una risposta lì. Ma sentiti libero di indicarlo, nel caso Mi è mancato!)

È utile trovare il parser kit RTF . Fornisce un parser basato sul stream 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.

Se il tuo progetto non è commerciale, qui c’è una buona libreria Java rtf gratuita per xml, meglio di quanto ritenga etranslate secondo me, ed è ansible 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 che ero stato 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 chiamata Ted. Prende argomenti dalla riga di comando senza l’interfaccia utente e può essere incluso nella chiamata JNI.

Spero che aiuti.