0

PdfTextStripper (PDFBox 1.8.2) を使用して、pdf ファイル内のすべての TextPosition を処理しています。多くのファイルでテストしましたが、テキストを読み取り順に処理することに気付きました。ただし、pdf にフッター (pdf としてエクスポートした docx) がある場合、これは適切ではありません。pdfTextStripper は、最初にフッターを処理し、次にファイルの本文を処理します。

これは予想される動作ですか? 順番を指定する方法はありますか?または、フッターを識別してコードで調整できる方法はありますか?

4

1 に答える 1

4

PdfTextStripper属性SortByPosition ( getSortByPosition& setSortByPosition) があります。falseデフォルトです。

この属性がfalse,本質PdfTextStripper的に PDF ページ コンテンツ ストリームに表示される順序でテキストを抽出する場合。

この順序は完全に混乱する可能性があります (コンテンツ ストリームでは、次の印刷テキストをページの任意の場所に配置できる演算子を使用するため)、多くの場合、一緒に属するテキスト セクションは一緒に保持されます (そのようなセクションに必要な操作がそのストリームに挿入されることが多いため)ブロックとして)。

ただし、ヘッダーとフッターは同時に追加されることが多いため、本文テキストの前後に一緒に表示されます。

この属性が「true,ただし」の場合、 はPdfTextStripper基本的にテキストを上から下、左から右に抽出します (読み取り順序が右から左に定義されている場合を除く)。(わかりました、わかりました、記事のビーズも尊重しますが、それらが一般的に使用されているとはほとんど期待できません。)

この順序は 1 列のテキストの場合は適切で、ヘッダーが最初でフッターが最後になりますが、適切な記事ビーズを使用しないと、複数列のページが乱雑になります。

ShouldSeparateByBeadsところで、属性( getSeparateByBeads& )を使用して冠詞ビーズの使用をオフにすることができますsetShouldSeparateByBeads

于 2013-07-19T09:01:39.997 に答える