私は についてしか話せませPDFTextStream
んが、それがどのように機能するかを理解するには、大まかに、PDFTextStream
PDF ドキュメントがどのように見えるかを理解する必要があります。
各ドキュメントは で構成されておりPages
、それらは で構成されていBlocks
ます (多数あり、ネストされている可能性があります)。Blocks
最終的には が含まれLines
、これには が含まれますTextUnits
。
これらの各ユニットには、、、x
およびプロパティがy
あります。すべての PDF は、座標に基づいて配置されたこれらの基本単位です。ページまたは領域を「読み取る」ように要求すると、オブジェクトと、それらが X、Y プレーンにどのように配置されているかを調べ、それがテキストにどのように変換されるかの近似値を使用します。この構造を機械可読な構造化データに変換する 100% 確実な方法はないため、エラーが発生するのはこのためです。width
height
PDFTextStream
では、関数と例PDFTextStream
を見てください。PDFTextStream はプロプライエタリ (私が PDFBox に移行する理由) であるため、テキストのフェッチに使用されるアルゴリズムについて詳しく説明することはできませんが、上記の過度の単純化に基づいています。getRegionText
幸運を。