Windows 供給ファミリーのリッチフォントフォールバック

Windows ファイルジョブと hpdf_document_execute_json_v1 は、リッチ FDF/XFDF インポートと元の型付きリッチ run に対して、呼び出し側が供給したフォントファミリー間のオプトイン式フォールバックに対応します。フォールバックは、リッチスタイル境界をまたぐ部分も含めて書記素全体を覆うファミリーを選びます

既定は厳格なままです。fallbackFontFamilies は false で、必要なグリフが欠ければ通常どおり失敗します。リストを指定しても、インストール済みシステムフォントが黙って選ばれることはありません

型付きリクエスト

{
  "schemaVersion": 1,
  "type": "forms.fill",
  "fontFamilies": ["Primary", "Sans", "Serif"],
  "fallbackFontFamilies": true,
  "fields": [{"name": "Input", "richTextRuns": [
    {"text": "A\u03a9a\u0301", "fontStyle": "regular",
     "fontFamilyCandidates": ["Unavailable", "Primary", "Serif", "Sans"]}
  ]}]
}

fontFamilies には 1〜16 の異なる設定ラベルを入れます。ASCII 文字は大文字小文字を無視して比較し、その他の Unicode コードポイントは正確に比較します。フィールドレベルの fontFamilies と fallbackFontFamilies は、forms.fill の操作既定を上書きします

設定ファミリーのフォールバックが有効なとき、型付き run は順序付きの fontFamilyCandidates を 1〜16 個指定できます。未知の名前は記述されたメタデータに残りますが、供給プログラムの解決ではスキップされます。fontFamily がない場合、宣言済み候補のうち最初に設定されたものが run のファミリーになります

宣言済み候補リストは設定ファミリーの順序より優先されます。この例では、Omega を欠く Primary フォントのとき、供給された両代替が書記素全体を覆えば、Sans より先に Serif が選ばれます

リッチ XML インポート

forms.import では操作レベルの fontFamilies と fallbackFontFamilies プロパティを使います。上限付き XHTML デコーダーは各インライン CSS の font-family リストを保持し、実際のアピアランスコンポーザーがその順序を供給フォントプログラムに適用します

<span style="font-family:Primary,Serif,Sans;font-weight:bold">AΩá</span>

FDF の RV 文字列と XFDF の value-richtext の両方がこの経路を使います。既存の inline-xhtml-font-families-v1 プロファイルは変更されず、実際のフォールバック動作は別途報告されます

実際のフォントバイト

既存の THPDFCABIFormDataOperationV1 フォントコールバックは、正規化された設定ファミリーラベルと regular、bold、italic、boldItalic のスタイル識別子をそれぞれ受け取ります。元の上限付き read-IO テーブルを返し、そのバイトは所有ストレージへコピーされます

ファイルジョブは既存の fonts オブジェクトから同じファミリー/スタイルプログラムを読みます。使用される各リッチスタイルについて、バインディングはトランザクション準備の前に設定済み候補プログラムをロードします。一致するアセットは型付きフィールド間で共有されます

V1 の IO と操作レイアウト、既存のエクスポートシンボルは変更されません。アセット、フォントバイト、メモリ、フィールド、オブジェクト、result、出力の各合計予算も引き続き強制されます。コールバック失敗は粘着的なままで、キャンセルチェックポイントは解析、ロード、準備、公開をカバーします

トランザクションと上限

AES 認証、署名済みリビジョンの保持、DocMDP、フィールドロック、読み取り専用検査は既存の認証付きトランザクションを使います。同じ入力のリッチ値、スタイル、フォント、アピアランスセマンティクスは、読み取り専用フィールドを含めバイト同一の no-op になり得ます

現在のコンテキストが変わる前に、PDF と JSON の両コールバックが成功しなければなりません。ゼロでないステータスの後は、出力された候補バイトを破棄してください。ファイルジョブはターゲットを置き換える前に候補全体を準備します

formDataExchange.suppliedFamilyFallback は default=false、richOnly=true、wholeGrapheme=true、fontFamilyCandidates=true、maxCandidates=16、candidateOrder=declared-before-configured を報告します

この機能はリッチコンテンツに適用されます。通常のスカラー、選択肢ラベル、ボタンキャプションのフォールバックは別機能のままです。たとえばチェックボックスキャプショングリフを欠くサブセットの第一フォントには、適切なスカラーフォントか将来のスカラーフォールバック対応が依然必要です

ロード済みジョブの直接リッチ充填、旧式のジョブハンドル/フォントコールバック拡張、任意の CSS レイアウト、外部スタイルシート、さらなる FDF/XFDF 注釈・ファイル・アクション・増分交換は、別途の作業です

関連トピック

元の型付きリッチ充填、Windows フォームデータ交換、バージョン付きフォント転送、ネイティブ供給ファミリー