Analizador RTF de Java

¿Alguien sabe de un analizador robusto RTF que puedo usar en Java? Necesito extraer texto sin formato, incluido el texto internacional. También sería bueno extraer imágenes y archivos incrustados. También podría ser un C ++ u otra biblioteca a la que pueda llamar fácilmente, o si hay un buen código fuente, puedo convertirlo a Java.

Las siguientes bibliotecas no cubren suficiente RTF o no analizan algunos RTF válidos

  1. RTFEditorKit de Java Swing, Apache Tikka, nutch, bastante básico y frágil, y muchas otras herramientas usan esto.
  2. una biblioteca RTF de iText (com.lowagie.etc …), no demasiado completa
  3. etranslate rtf library (este es el más completo de Java) No estoy seguro si hay una versión actualizada, pero la versión que obtuve falla en algunos de mi colección rtf (los RTF son válidos, al menos abren en MsWord y OpenOffice OK )

Hay una biblioteca C # que está razonablemente completa, pero por desgracia … es C # y no Java. http://www.codeproject.com/Articles/27431/Writing-Your-Own-RTF-Converter

También examiné OpenOffice, es demasiado lento para lo que necesito, aunque probablemente sea muy completo.

(Realicé búsquedas en la web y apunté las búsquedas desbordadas antes de publicar esta pregunta, así que si me remite a una publicación antigua “ya solicitada”, probablemente no tenga una respuesta ahí. Pero siéntase libre de señalarlo, por si acaso. ¡Me lo perdi!)

Puede encontrar útil el Kit RTF Parser . Proporciona un analizador basado en secuencias que le entrega eventos a medida que se analiza el documento. Hay un ejemplo simple de extractor de texto proporcionado que demuestra cómo se puede usar la API.

Si su proyecto no es comercial, entonces hay una buena libre biblioteca Java rtf a xml aquí , mejor que etranslate en mi opinión, y puede procesar el xml desde allí. Sin embargo, si lo está utilizando con fines comerciales, deberá organizar la concesión de licencias con rtf-to-xml.com , la compañía que lo desarrolló.

Sin embargo, una vez que estuve en una situación similar, antes de encontrar rtf-to-xml, encontré un trabajo divertido para este problema cuando necesito analizar ms rtf en el servidor de Linux. Hay un procesador de texto enriquecido gratuito, que también es una biblioteca llamada Ted. Toma argumentos de la línea de comandos sin la interfaz de usuario y se puede incluir en la llamada JNI.

Espero que esto ayude.