11
votes

RTF au texte brut en Java

Comment convertissez-vous une chaîne RTF en texte brut en Java? La réponse évidente consiste à utiliser le rtfeditorkit de Swing et qui semble être la réponse courante autour d'Internet. Cependant, la méthode d'écriture qui prétend retourner du texte brut n'est pas réellement mise en œuvre ... il est codé dur pour simplement lancer une ioException en Java6.


0 commentaires

4 Réponses :


6
votes

2 commentaires

Tika utilise 'rtfediditorkit' sur le backend


Tika est juste pour le texte simple et les métadonnées, ai-je raison?



19
votes

J'utilise le rtfeditorkit de Swing à Java 6 comme ceci:

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


3 commentaires

Vous avez travaillé en utilisant cette solution, bien que cela ne fonctionnait pas au début non plus. Il s'avère que mes données d'entrée étaient invalides et la conversion a échoué silencieusement et renvoie une chaîne vide.


Cela fonctionne pour moi, mais pour une raison quelconque, le texte sort avec des caractères abandonnés.


Cela fonctionne bien dans la plate-forme Windows, mais pour * Nix Platform, il a une dépendance avec X11 Window Server.



1
votes

Vous pourriez envisager Kit d'analyseur RTF comme une alternative légère à la balançoire RTFeDITORKIT. La ligne ci-dessous montre une extraction de texte brut à partir d'un fichier RTF. Le fichier RTF est lu à partir du flux d'entrée, le texte extrait est écrit dans le flux de sortie.

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


0 commentaires

0
votes

Voici le code complet pour analyser et écrire RTF comme texte brut xxx


0 commentaires