

Javaで、Apache Tikaで、PDFのパース処理をしています。  
ほとんどのPDFは、正常に、読み込めるのですが、パースエラーになったり、  
パースできても、本文内の文字が連続する現象発生します。

ここで、お聞きしたいのは、「本文内の文字が連続する現象」の原因と対策方法です。  
パースで取り出した長文の中から同じようなパターンの一部を下記へ抜粋。

> **(1)(1)(1)(1)風風風風林火林火林火林火山山山山用用用用DBDBDBDB**

おそらく、PDFの「(1)風林火山用DB」が書かれている部分をTikaが取り出したときに、  
PDFのコメント？、アクセシビリティ？、何かしら、普通に開いた時には見えないが、  
PDFに埋め込まれているもの？をTikaがパースで取り出したのでは？と考えています。（想像）

ソース：

[code]

    InputStream input = new FileInputStream("sample.pdf");
    ContentHandler handler = new BodyContentHandler(Integer.MAX_VALUE);
    Metadata metadata = new Metadata();
    new PDFParser().parse(input, handler, metadata, new ParseContext());
    String plainText = handler.toString();
    System.out.println(plainText);
    
[/code]

原因、及び、対応策（Tikaへの設定？など）は、ありますでしょうか？

■ご回答を頂いたものを試した結果  
下記を試してみましたが、文字の連続は治りませんでした。  
予想ですが、config 変数を、parser.parse() などに、セットが必要と考えます。  
※今、日本のサイトでは事例が１つも見つからないので、海外のサイトでソース例を探していますが、見つかっていません。

もし、解決方法をご存知の方がいらましたら、やってみては？程度でかまいませんので、  
お返事をお待ちしております。

[code]

    PDFParser parser = new PDFParser();
    PDFParserConfig config = new PDFParserConfig();
    
    // 太字などを文字を重ねることで表現している場合における重複文字を無視するかどうか
    config.setSuppressDuplicateOverlappingText(true);
    
    // テキスト下線などを無視するかどうか
    config.setExtractAnnotationText(false);
    
    parser.parse(input, handler, metadata, new ParseContext());
    
[/code]


CC BY-SA 3.0
2016-09-14T04:31:53.230
28873
2016-12-06T03:12:21.070
2016-09-14T08:55:54.883
17129
17129
question
java
Apache Tikaで、PDFの本文内の文字が連続する現象発生


`PDFParser`クラスには下記のようにPDF解析時の設定を追加することができます。

[code]

    PDFParser parser = new PDFParser();
    PDFParserConfig config = new PDFParserConfig();
    
    // 太字などを文字を重ねることで表現している場合における重複文字を無視するかどうか
    config.setSuppressDuplicateOverlappingText(true);
    
    // テキスト下線などを無視するかどうか
    config.setExtractAnnotationText(false);
    
    // ParserにConfigを設定
    parser.setPDFParserConfig(config);
    
    parser.parse(input, handler, metadata, new ParseContext());
    
[/code]

ご質問のファイルの状態がどのようになっているのかがわからないため、的確な回答はできませんが、上記のように解析オプションを変更してみて試してみてはいかがでしょうか。


CC BY-SA 3.0
2016-09-14T05:31:41.830
28874
2016-09-21T07:57:41.220
2016-09-21T07:57:41.220
10724
10724
28873
answer