5

PDF ファイルを解析し、インデックス作成などのために内部のテキストを引き出すシステムがあります。私たちが抱えている問題の 1 つは、Illustrator が「fi」を含む単語を設定して、fi (単一グリフ) の合字を使用することです。

たとえば、この行...

「ベンチと豊かなガラス化セラミック タイル」。

私のJavaデバッガーではこのように表示されます

「エテ ベンチとリッチ ビトリ\u001Fed セラミック タイル。」

\u001F は、Adobe PDF ファイルが合字「fi」に使用する文字コードのようです。\u001F の出現を「fi」に置き換えることは明らかにできますが、これとそのようなケースを処理する堅牢な方法を知っている人はいますか?

4

1 に答える 1

4

PDF の「テキスト表示」演算子 (TJ、Tj など) のオペランドとして使用されるバイトのシーケンスは、グラフィック状態のアクティブなフォントのエンコーディングと、フォントに関連付けられた ToUnicode cmap を使用して、テキストに変換する必要があります。一部のフォントには、0x001F コード (またはグリフに使用される任意のコード) を文字 'f' および 'l' にマップする ToUnicode cmap が含まれています。他のフォントは、コード 0x1F を文字 /fl にマップする /Differences 配列を含むエンコーディングを使用します。正しい結果を得るには、これらの構造を処理する必要があります。

于 2012-04-26T06:39:23.477 に答える