Windows 提供家族的 rich 字型後備
Windows file job 與 hpdf_document_execute_json_v1 支援選擇性啟用的後備:在 rich FDF/XFDF 匯入與原始 typed rich run 的呼叫端提供字型家族之間挑選;後備會選出涵蓋整個字素的家族,包括跨 rich 樣式邊界的部分
預設維持嚴格:fallbackFontFamilies 為 false,缺少必要的 glyph 就正常失敗;提供清單不會默默挑選系統已安裝字型
Typed 請求
{
"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 包含一到十六個不同的已設定標籤;ASCII 字母比對不分大小寫,其他 Unicode 碼位則精確比對;欄位層級的 fontFamilies 與 fallbackFontFamilies 會覆寫 forms.fill 的操作層級預設
啟用已設定家族後備時,typed run 可指定一到十六個有序的 fontFamilyCandidates;未知名稱保留在作者撰寫的 metadata 中,並在提供程式解析時跳過;若缺少 fontFamily,第一個已設定的宣告候選就成為該 run 的家族
宣告的候選清單在已設定家族順序之前決定偏好;以本例來說,當 Primary 字型缺 Omega、而兩個備選都能涵蓋整個字素時,會先選 Serif 再選 Sans
Rich 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 字型 callback 收到每個標準的已設定家族標籤與 regular、bold、italic 或 boldItalic 樣式識別;它回傳原本受限的 read-IO 表,其位元組會複製到自有儲存
file job 從既有的 fonts 物件讀取同樣的家族/樣式程式;對每個用到的 rich 樣式,繫結會在準備交易前載入已設定的候選程式;相符的資產在 typed 欄位之間共用
V1 的 IO 與操作版面及既有匯出符號維持不變;彙總的資產、字型位元組、記憶體、欄位、物件、結果與輸出預算持續強制執行;callback 失敗維持黏滯,取消檢查點涵蓋解析、載入、準備與發布
交易與限制
AES 驗證、已簽署修訂保留、DocMDP、欄位鎖與唯讀檢查使用既有的已驗證交易;相同輸入的 rich 值、樣式、字型與外觀語意可以產生位元組相同的無操作,包括唯讀欄位
PDF 與 JSON callback 都必須成功,目前的 context 才會切換;任何非零狀態後請丟棄已輸出的候選位元組;file job 會在取代目標前準備完整候選
formDataExchange.suppliedFamilyFallback 回報 default=false、richOnly=true、wholeGrapheme=true、fontFamilyCandidates=true、maxCandidates=16 與 candidateOrder=declared-before-configured
這項功能適用於 rich 內容;一般純量、選項標籤與按鈕標題的後備仍是另外的能力;例如 subset 首字型缺核取方塊標題 glyph 時,仍需要合適的純量字型或未來的純量後備支援
直接載入工作的 rich 填寫、較舊的工作 handle/字型 callback 擴充、任意 CSS 版面、外部樣式表,以及更多 FDF/XFDF 註解、檔案、動作或增量交換,仍屬另外的工作