0

StringWord 文書に含まれるテキストを取得しようとしています。Apache POIAPIを使用して試したコードは次のとおりです。

FileInputStream fis = new FileInputStream(file.getAbsolutePath());
        HWPFDocument document = new HWPFDocument(fis);
        WordExtractor extractor = new WordExtractor(document);
        String fileData = extractor.getText();

fileDataワードファイルからのデータが含まれている必要があります。

しかし、削除したい無効な文字がいくつかあります。たとえば、単語内の次のテキスト:

Project Name    Customer 360

Position        Software Engineer

Javaコンソールで印刷されたときのようになります:

Project Name [?]Customer 360[?][?]Position \t [?]Software Engineer

[?]小さなボックス内のクエスチョン マーク記号はどこにありますか。ここに貼り付けたら出てこないので[?]そのまま表してました。

代わりに次のように出力したいと思います:

Project Name \t Customer 360 \n Position \t Software Engineer

これにより、このテキストを処理するために本当に必要なタブと改行に関する情報が得られます。

私は知っていてtabnewline情報はそこに\tあり\n、いくつかの場所ではありますが、いくつかの場所では欠落しています。

4

1 に答える 1

1

そのテキストに適用される特別なフィールドがいくつかあるようです。ほとんどの場合、リンク、特別なルール、フォーム フィールドなどが適用されます。

そのすべてが必要ない場合は、 WordExtractor でstripFields(java.lang.String) メソッドを使用して、表示されたテキストだけを残してそれらを削除します。

そのメソッドの JavaDocから:

文字列からフィールド (マクロ、ページ マーカーなど) を削除します。

コードは次のようになります。

    FileInputStream fis = new FileInputStream(file.getAbsolutePath());
    HWPFDocument document = new HWPFDocument(fis);
    WordExtractor extractor = new WordExtractor(document);
    String rawText = extractor.getText();
    String displayText = extractor.stripFields(rawText);
于 2013-10-16T11:04:58.667 に答える