Le stringhe che sto utilizzando (a livello di codice) dai file MS Word quando si utilizza POI Apache non sono lo stesso testo che posso visualizzare quando apro i file con MS Word.Java: POI Apache: posso ottenere testo pulito dai file MS Word (.doc)?
Quando si utilizza il seguente codice:
File someFile = new File("some\\path\\MSWFile.doc");
InputStream inputStrm = new FileInputStream(someFile);
HWPFDocument wordDoc = new HWPFDocument(inputStrm);
System.out.println(wordDoc.getText());
l'uscita è una sola linea con molti personaggi 'non valide' (sì, le 'scatole'), e molte stringhe indesiderati, come "FORMTEXT
", "HYPERLINK \l "_Toc##########"
"('#' essere cifre numeriche)," PAGEREF _Toc########## \h 4
", ecc
il seguente codice 'fissa' il problema a linea singola, ma mantiene tutti i caratteri non validi e testo indesiderato:
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);
}
Non so se sto usando il metodo sbagliato per estrarre il testo, ma questo è quello che ho trovato quando ho visto POI's quick-guide. Se lo sono, qual è l'approccio corretto?
Se l'output è corretto, esiste un metodo standard per eliminare il testo indesiderato o devo scrivere un filtro personale?
La seconda soluzione non ha funzionato in i miei test TIKA-1.2 ha restituito FORMCHECKBOX e altre cose dai file .doc. File .docx ha funzionato bene però. – Simon
Ti suggerisco di provare con la versione più recente di Tika, 1.3. Se il problema si verifica ancora lì, si prega di [sollevare un bug] (https://issues.apache.org/jira/browse/TIKA) e caricare un file di esempio mostrandolo, in modo che possiamo indagare! – Gagravarr
Questo succede ancora in Tika 1.3 per me, per quello che vale. – damd