2011-04-28 27 views
9

¿Cómo se convierte una cadena RTF a texto sin formato en Java? La respuesta obvia es usar el RTFEditorKit de Swing, y esa parece ser la respuesta común en Internet. Sin embargo, el método de escritura que afirma devolver texto sin formato no está realmente implementado ... está codificado para lanzar una excepción IOException en Java6.RTF a texto sin formato en Java

Respuesta

15

utilizo RTFEditorKit de oscilación en Java 6 así:

RTFEditorKit rtfParser = new RTFEditorKit(); 
Document document = rtfParser.createDefaultDocument(); 
rtfParser.read(new ByteArrayInputStream(rtfBytes), document, 0); 
String text = document.getText(0, document.getLength()); 

y eso es trabajar.

+0

Lo conseguí trabajando con esta solución, aunque tampoco funcionó al principio. Resultó que mis datos de entrada no eran válidos, y la conversión fallaba silenciosamente y devolvía una cadena vacía. – edm3

+1

Funciona para mí, pero por alguna razón, el texto aparece con los caracteres descartados. –

+0

Funciona bien en la plataforma WIndows, pero para la plataforma * nix, tiene dependencia con el servidor de ventanas X11. – Valijon

0

Puede considerar RTF Parser Kit como una alternativa ligera al Swing RTFEditorKit. La línea a continuación muestra la extracción de texto sin formato de un archivo RTF. El archivo RTF se lee de la secuencia de entrada, el texto extraído se escribe en la secuencia de salida.

new StreamTextConverter().convert(new RtfStreamSource(inputStream), outputStream, "UTF-8"); 

(la revelación completa: Soy el autor de RTF Analizador Kit)

Cuestiones relacionadas