OpenType CFF 注釈・フィールド外観

ネイティブ外観ビルダは、既存の TrueType 入力に加えて、CFF 1 輪郭を持つ OpenType OTTO フォントを受け付けます

plain・rich・shaped・family テキスト外観は、Subtype OpenType と CIDFontType0 の子孫を持つ FontFile3 として、元の OpenType ファイル全体を埋め込みます

name-keyed CFF はグリフインデックスを CID として使います。CID-keyed CFF は、グリフインデックスから CID への実際の Registry・Ordering・Supplement・charset マッピングを保持します

生成される Encoding CMap はテキスト文字コードを実際の CID にマップします。widths はその CID を使い、ToUnicode は論理テキストを保持し、CIDFontType0 は CIDToGIDMap を受け取りません

グリフの位置と範囲は、リッチフラグメントや結合記号の境界を含め、HarfBuzz の OpenType メトリクスを使います。リッチフラグメントは、スタイルごとの不変フォントリーダと 1 つの埋め込みフォントリソースを共有します

CFF メトリクスには、ShapeComplexText が False でも、一致するアーキテクチャの HarfBuzz ライブラリが必要です。HOTPDF_HARFBUZZ_LIBRARY で明示的なパスを選択でき、複雑なシェーピングはさらに既存の FriBidi 依存を使用します

通常外観を持たない可視 FreeText 注釈は、完全な OpenType CFF フォントを含む有効なデフォルト外観リソースを使用できます。既存のリソース優先順位、クリッピング、色、読み取り専用埋め込みポリシーが適用されます

編集可能フィールドの生成は引き続き installable または editable 権限を要求します。読み取り専用フォールバックは preview-and-print 権限を許可し、restricted または bitmap-only の輪郭は引き続き拒否されます。no-subsetting はフォントの全バイトを保持します

フォントバイト、グリフ、オブジェクトサイズ、リッチフォント合計、キャンセル、ネイティブレンダリングの各予算は引き続き適用されます。不正な CFF INDEX オフセット、ディクショナリ、charset 範囲、重複 CID、欠落コレクション文字列は、公開前に拒否されます

形式マッピングは、明示的な CID-keyed OpenType charset マッピングを含め、ISO 32000-1:2008 9.7.4.2 と 9.9 に従います

ネイティブレンダリング、MuPDF、Ghostscript はスパース CID の OpenType フィクスチャに合格します。テストされた Poppler バックエンドにはスパース CID OpenType マッピングの非互換が別途あり、Poppler の identity-CID OpenType とスパースな生 CIDFontType0C の対照は正しくレンダリングされます

独立したリーダは、欠落注釈外観を異なる方法で合成し得ます。明示的に生成された外観は、リーダごとのフォールバック動作とは別に検査されます

欠落注釈外観は、元の生フォント注釈パスで元の Type1・Type1C・CIDFontType0C リソースを保持することもできます。OpenType CFF2 入力は、CFF2 を PDF 1.7 フォントストリームに直接埋め込むのではなく、明示的な形式変換を行う別の静的デフォルトインスタンス外観バックエンドを使います

HPDFBuildHeadlessTextAppearance と TryGetCompactFontTable を参照してください