1

フォントの不要な部分を追加しないように、次のように定義します。

/FirstChar 32
/LastChar 126

PDFドキュメントにフォントを埋め込むため。ただし、これはUTF-8フォントには適用されません。一連の文字ではない文字(UTF-8全体でランダムな文字)を使用する場合があるためです。一方、UTF-8フォント全体を埋め込むことはできません。これは、PDFドキュメントには大きすぎるためです(もちろん、役に立たないためです)。

数文字でフォントを選択的に埋め込む方法は?私の質問はPDFコード(それを書く方法)についてですか?

考えられるアプローチ:

手動: FontForgeなどのプログラムを使用して、選択した文字でカスタムフォントをキャプチャできますが、PDFドキュメントでカスタム文字を指す方法はありますか?PDFはとのみを要求しFirstCharますLastChar

自動(推奨): UTF-8フォント全体をPDFドキュメントに埋め込み、PDFドキュメントを(pdftkなどのツールを使用して)最適化して不要な文字を削除します。そのようなツールはありますか?

4

1 に答える 1

4

PDFファイルでFirstCharとLastCharを定義しても、実際のフォントデータにはまったく影響しません。フォントに文字の全範囲よりも少ない文字を埋め込むには、実際のフォントデータを「サブセット化」する必要があります。つまり、各グリフの説明を見つけ、必要な各説明を保存してから、フォントタイプに応じて、グリフの説明を含めるための適切なフレームワークを生成します。

一般に、「UTF-8」フォントのようなものはありません。フォントには、多数のグリフを描画する方法に関する一連の指示と、正しいグリフの説明を見つけるために文字コードからインデックスを作成する手段が含まれています。PostScriptフォントの場合、これはエンコーディングによって与えられ、CIDFontsの場合、CMapによって与えられ、TrueTypeフォントの場合、フォントに埋め込まれたCMAPサブテーブルによって与えられます。

したがって、目標を達成するには、使用するフォント形式(PostScriptタイプ1、タイプ2、CIDFont、またはTrueType)を完全に理解し、必要なグリフの説明を判別し、フォントからそれらを抽出できるようにする必要があります。次に、必要なグリフの説明だけを含む新しいフォントを作成します。

これは大変な作業になります。@mklが言うように、あなたはおそらくあなたの意図したワークフローを説明することをお勧めします、そして私たちはそれを達成する方法についてあなたにもっとよくアドバイスしようとします。たとえば、ボットのAdobe Acrobat DistillerとGhostscriptのpdfwriteデバイスは、PostScriptをPDFに変換するときにフォントをサブセット化します。

于 2012-12-05T08:26:13.110 に答える