PDFCreator0.9.xによって生成されたPDFファイルのレンダリング中。文字マッピングにエラーが含まれていることに気づきました。さて、PDFファイルのエラーは何も不思議ではありません。Acrobatは欠陥のあるPDFファイルをレンダリングするのに不思議に思うので、多くのPDFジェネレーターはPDF標準に完全に準拠していないPDFを作成します。
小さなサンプルファイルを作成しようとしています:http://test.continuit.nl/temp/Document.pdf
単一のページは、Tjコマンドを使用して単一のグリフ(大文字のA)をレンダリングします(ストリーム5 0 objを参照)。選択したフォント(7 0 obj)には、単一のグリフが埋め込まれたフォントが含まれています。ここまでは順調ですね。charはchar#1によって参照されます。フォントのエンコーディングを考えると、相違点の部分が含まれています:[1/A]。したがって、char1->文字/A。埋め込まれたサブセットフォントには、文字65(大文字のAなど)のグリフに一致しないcmapがあります。フォントのcmapセクションは、PDFファイルの[フォント]->[エンコード]->[差分]配列の順序で文字を正確に定義します。
文字のマッピング/エンコードが2回行われているようです。PDFCreator0.9.xのファイルのみが影響を受けるようです。
私の質問は次のとおりです。これは正しいですか(または間違いを犯してPDFは正しいですか)、レンダリングの問題を解決するためにこの状況を検出するにはどうしますか?
注:これらのPDFをレンダリングできる必要があります。
解決
ISO32000ファイルには、シンボリックTrueTypeフォント(フォント記述子のフラグビット3がオン)はエンコードが許可されていないため、常に単純な1on1エンコードを使用して無視する必要があるという記述があります。つまり、全体として、シンボリックフォントの場合は、Encodingオブジェクトを完全に無視します。これにより、問題が解決します。