Java: Apache POI: puis-je obtenir propre texte à partir de MS Word (.doc) des fichiers?

Les cordes je suis (par programmation) prise de fichiers MS Word lors de l'utilisation d'Apache POI ne sont pas le même texte, je peux regarder quand j'ouvre les fichiers avec MS Word.

Lorsque vous utilisez le code suivant:

File someFile = new File("some\\path\\MSWFile.doc");
InputStream inputStrm = new FileInputStream(someFile);
HWPFDocument wordDoc = new HWPFDocument(inputStrm);
System.out.println(wordDoc.getText());

la sortie est une seule ligne avec beaucoup de "non valide" des personnages (oui, les "boîtes"), et de nombreux indésirables des chaînes, comme "FORMTEXT", "HYPERLINK \l "_Toc##########"" ('#' étant des chiffres), "PAGEREF _Toc########## \h 4", etc.

Le code suivant "résout" le seul problème de lignes, mais conserve tous les caractères invalides et le texte non désiré:

File someFile = new File("some\\path\\MSWFile.doc");
InputStream inputStrm = new FileInputStream(someFile);
WordExtractor wordExtractor = new WordExtractor(inputStrm);
for(String paragraph:wordExtractor.getParagraphText()){
  System.out.println(paragraph);
}

Je ne sais pas si je suis sur la mauvaise méthode pour extraire le texte, mais c'est ce que j'ai trouvé lors de la recherche à POI guide de. Si j'y suis, quelle est la bonne approche?

Si cette sortie est correcte, est-il un moyen standard pour se débarrasser de l'indésirable texte, ou devrai-je écrire un filtre de mon propre?

OriginalL'auteur XenoRo | 2012-04-20