Qualcuno ha familiarità con il formato del documento RTF e l'analisi utilizzando qualsiasi libreria Java. Il modo in cui le persone normali hanno fatto questo è quello di utilizzare il RTFEditorKit in altalena API JDK:Analisi di documenti RTF con Java/JavaCC
ma non è che preciso quando si tratta di parsing di documenti RTF. In effetti c'è un commento nell'API:
Il supporto RTF non è stato scritto dal team di Swing . In futuro ci auguriamo di migliorare il supporto fornito con .
Non penso che ho intenzione di aspettare che questo accada :)
L'altro approccio è quello di definire una grammatica utilizzando JavaCC e generare un parser. Funziona meglio, ma ho difficoltà a trovare una grammatica completa. Ho provato:
che è ok e il successivo (che è il migliore finora).
Koders RTFParserDelegate and ETranslate Grammar
Ci sono diverse implementazioni della grammatica eTranslate circa (lo so l'API Nutch può utilizzare questo). Qualcuno sa qual è la grammatica più accurata o se esiste un approccio migliore a questo?
ho potuto iniziare solcando la documentazione JavaCC per comprendere i file .jj e testare contro i file RTF ... questo è il mio approccio attuale, ma si sta prendendo un po 'di ... qualsiasi aiuto sarebbe apprezzato
Impossibile rispondere alla domanda effettiva, ma sembra un approccio di convalida migliore (anziché utilizzare la grammatica) è quello di creare file di test e verificare che siano analizzati correttamente. Tuttavia, come ricordo, i parser RTF sono autorizzati a ignorare qualsiasi costrutto che non capiscono, consentendo la retrocompatibilità. – kdgregory
Il parser ETranslate fa molto bene all'estrazione di documenti RTF (99% del set che ho), ma non è supportato e non è disponibile da una fonte centrale. Cercherò di farlo su Google Code da qualche parte ... non sono sicuro delle licenze, ha solo bisogno di correggere alcuni bug in termini di grammatica, credo ... – Jon
hai fatto qualche progresso con questo? – pvgoddijn