第6章 フォントの扱い
テキスト透かしの挿入や、PDFページのコンテンツに文字列を描画する処理を行うにはフォント情報が必要です。
6–1 フォント情報の取得
- Windows 版においては、システムのフォントフォルダ(通常、「{システムドライブ}:\WINDOWS\Fonts」)に存在するフォントを参照します。
- フォントフォルダとは別の場所にあるフォントを使用する場合は、「フォント構築ファイル」を設定します。
- Linux / Amazon Linux2 X86版においては、「フォント構築ファイル」の設定は必須です。
6–2 フォント構築ファイルの設定
フォント情報を特定のフォルダから取得する場合、フォント構築ファイルを設定します。
フォント構築ファイルは、以下のファイルです。
インストールフォルダ\fontconfig\font-config.xml
フォントファイルが存在するフォルダパスを、「font-folder path」タグに記述します。
font-config.xml 記述例(Windows 版)
<font-config>
<font-folder path=”C:\TestFont”></font-folder>
</ font-config>
6–3 環境変数の作成
フォント構築ファイルの設定を反映させるためには、環境変数を作成し値を設定します。
環境変数名: PTL70_FONT_CONFIGFILE
設定する値: font-config.xml のフルパス
6–4 サポートしているフォントの種類
- TrueType フォント(Unicode cmap を持つもの)
- OpenType フォント(Unicode cmap を持つもの)
- Type1 フォント
6–5 フォントの埋め込み
PDF Tool API での処理時にフォントの埋め込みを指示した場合にフォント情報がPDF ファイルに埋め込まれます。
ただし、次のフォントについては、埋め込み指示があってもフォント情報は埋め込まれません。
- TrueType、OpenType:フォント埋め込みが禁止されたフォント
- Type1:PFB ファイルが存在しないフォント
6–6 フォントの統合
- フォント統合は、PDF に埋め込まれているフォントに対して行われます。
- 次のフォントが統合対象です。
- TrueType、Type1(CFF 形式のみ)、CIDFontType2、CIDFontType0
- 統合対象は、埋め込まれたフォントファイルとフォント辞書です。
- フォント辞書の統合について、
- TrueType、Type1(CFF 形式のみ)の場合、FontDescriptor辞書が統合されます。
- CIDFontType2、CIDFontType0はの場合、CIDFont辞書が統合されます。
- ページとFormXObjectのフォントが統合対象です。
- 注釈とフォームフィールドのフォントは統合の対象となりません。
- 同じ文字で描画命令が違うものは統合の対象となりません。
- 埋め込まれたフォントファイルの内容をチェックし以下の条件の場合は統合されません。
- TrueType フォントの場合、cmap、head,hhea,hmtx,maxp,cvt,fpgm,prep の各テーブルで違うものがあれば統合の対象となりません。
- CIDFontType2 フォントの場合、head,hhea,hmtx,maxp,cvt,fpgm,prep の各テーブルで違うものがあれば統合の対象となりません。
- Type1(CFF 形式のみ)、CIDFontType0において、メジャーバージョン、マイナーバージョンが異なる場合、統合の対象となりません。
- フォント辞書の内容をチェックし以下の条件の場合は統合されません。
- CIDFontType2、CIDFontType0の場合、
- 「CIDSystemInfo」辞書の「Registry」キー(文字コレクションの発行者を識別する文字列)、「Ordering」キー(「Registry」の文字コレクションに一意の名前を付ける文字列)が違うものは統合対象外
- 「DW」キー(グリフのデフォルトの幅)が違うものは統合対象外
- 「DW2」キー(縦書き用のグリフのメトリック)が違うものは統合対象外
- 「CIDToGIDMap」キーが「Identity」という値以外の名前、もしくは型がストリームの場合は統合対象外
- 同じ文字で「W」キー(「DW」の説明)の値が違うものがある場合は統合対象外
- 同じ文字で「W2」キー(「DW2」の説明)の値が違うもがある場合は統合対象外
- 「Weight」キー(太さ)が違う場合は統合対象外
- TrueType、Type1(CFF 形式のみ)の場合、
- 「Weight」キー(太さ)が違う場合は統合対象外
[改訂での仕様変更]
- 同じフォントタイプであってもフォント辞書の値(Ascent,CapHeight など)が異なる場合は統合の対象となりません。
→V7.0 改訂3以降、この条件はありません。