pageSize/MediaBox
選択長方形をページのに設定して、すべてのテキストを取得できるはずです。
の出力に驚かされる理由を疑問に思う前にpoppler_page_get_text
、テキストがページにどのように配置されるかを知っておく必要があるためです。すべてのグラフィックは、修正後の表記で表現されたプログラムを使用してページに配置されます。ページをレンダリングするために、このプログラムは空白のページで実行されます。
プログラムの操作には、色の変更、位置、現在の変換行列、線の描画、ベジェ曲線などが含まれます。テキストは、常にBT(開始テキスト)とET(終了テキスト)で囲まれた一連のテキスト演算子によってレイアウトされます。テキストをページに配置する方法または場所は、PDFを生成するソフトウェアの独自の裁量に委ねられています。たとえば、印刷ドライバーの場合、コードはGDI呼び出しに応答し、DrawString
それをテキスト描画操作に変換します。
運が良ければ、ページ上のテキストは適切なフォントの使用法で適切な順序で配置されますが、PDFを生成する多くのプログラムはそれほど親切ではありません。 Psroff
たとえば、最初にすべてのプレーンテキスト、次にイタリックテキスト、次に太字テキストを配置するのが好きでした。単語は読み順で配置される場合と配置されない場合があります。'a'
フォントは、マップなどにマップするように再エンコードできます'{'
。次に、複数の文字が単一のグリフに置き換えられた合字がある場合があります。最も一般的な文字ae
はoe
、、、、、、fi
およびfl
ですffl
。
これらすべてが整っているので、テキストを抽出するプロセスは明らかに重要です。したがって、テキスト抽出の結果の品質が低くても驚かないでください。
私は以前、Acrobat1.0および2.0のテキスト抽出ツールに取り組んでいました。正しく理解するのは非常に困難です。