純量欄位的提供字族 fallback
一般文字欄位、comb 儲存格、choice 顯示標籤、核取方塊與選鈕記號、密碼遮罩與原生 pushbutton 標題,可以使用與富文字相同的明確提供字族,而不改變其純量表單中繼資料
提供一到十六個相異的設定標籤與其 regular TrueType 程式,然後啟用 FallbackFontFamilies;選取涵蓋完整 grapheme,不使用已安裝的系統字型
既有的一般換行、間距、shaping、bidi、裁剪、旋轉、自動尺寸、選取的清單列與匯出狀態行為維持有效;混合 comb 欄位保留原始純量儲存格限制,不接受原始 comb 設定檔拒絕的複雜 shaping
混合一般外觀可能包含子 Form 與數個實際內嵌字型,因此請以回傳的物件數為準,不要假設固定的七物件外觀
Windows JSON 與回呼傳輸
{
"schemaVersion": 1,
"type": "forms.fill",
"fontFamilies": ["Primary", "Serif", "Sans"],
"fallbackFontFamilies": true,
"fields": [
{"name": "Plain", "value": "A\u03a9"},
{"name": "Check", "value": "Yes"}
]
}
對 Windows 作業,透過既有的 fonts 物件提供每個設定字族的 regular 字型檔;對 hpdf_document_execute_json_v1,透過既有的版本化字型回呼與 IO 擴充回傳其真實 regular 程式
明確的具名 fallback 讓純量填寫走與混合帶型別 run 相同的認證候選交易;純量作業請求 regular 候選字面,並回傳 typedRichText=false 與 scalarFamilyProfile="supplied-regular-fonts-v1"
FDF 與 XFDF 純量匯入對文字、choice、核取方塊與選鈕使用相同的提供字族路徑;pushbutton 標題使用原生標題 API,不會當作純量按鈕匯出狀態匯入
Windows 純量同值匯入與填寫保留既有僅值 no-op 合約,並保留精確的已提交 bytes,包括唯讀欄位;它們不會把新的字型或色彩設定與既有 AP 比較,因此需要明確重建外觀時請使用原生字族 setter
原始帶型別富 run 保留既有的樣式與外觀比較;加入純量 fallback 不會量化帶型別大小或色彩,也不改變編寫的 RV
PDF 與結果回呼都必須成功,context 更新才會可見;黏性的字型與 IO 錯誤、取消、預算、加密認證與簽章政策會保留已提交圖形與原子檔案輸出
清除的單選 choice 儲存 /V null 與空索引陣列;明確選取空匯出選項則保留 /V () 與其實際索引,因此重複清除與空值選取仍可區分
沒有選取索引也沒有空匯出選項的舊式空白 choice 可視為僅值 no-op;有真實選取空匯出的唯讀 choice 無法清除
原生 Linux JSON 與回呼傳輸
Linux 版本化作業接受相同的有序 fontFamilies 與 fallbackFontFamilies 選項;regular 程式透過作業的 Fontconfig 環境解析,並提供給原生字族外觀 API
純量文字、comb 儲存格、choice 標籤、核取方塊與選鈕記號、密碼遮罩、檔案選擇欄位與明確 pushbutton 標題使用真實的完整 grapheme 覆蓋;純量 FDF/XFDF 匯入載入 regular 候選,不加入編寫的富文字旗標或 RV
僅富文字匯入保留其實際需要的樣式聯集,而不是請求每個字族的 regular 字面;混合純量與富匯入則加入純量欄位所需的 regular 候選
Linux 回呼匯入對重複清除與同值 no-op 保留精確的已提交 bytes;認證 AES R5/R6、P1/P2/P3 與 FieldMDP 政策、取消與發布失敗都保留先前提交的文件
對每個新建的原生 ABI 程式庫執行 Tests/Linux/Run-ScalarFontFallbackChecks.sh LIBRARY FIXTURES FONTS OUTPUT;Tests/Linux/HeadlessScalarFontFallback.en-us.md 描述真實簽章輸入、隔離的三字型目錄與獨立的字形/CMS 檢查
重現符合性檢查
公開的 Windows 執行器接受明確的來源、輸出、字型、純量 fixture、清除 fixture 與真實簽章政策目錄;絕不會默默消費先前的私有證明目錄
用 Tests/Linux/Build-HeadlessTypedFormFixtures.py 產生初始的四欄位文件,再把其 mixed.pdf 傳給純量與清除 fixture 產生器
python Tests/CABI/BuildScalarFixtures.py work/typed/mixed.pdf work/scalar
python Tests/CABI/BuildScalarClearFixtures.py work/scalar/scalar.pdf work/clear
提供名為 primary-0.ttf、DejaVuSerifCondensed.ttf 與 DejaVuSans.ttf 的真實 regular 程式;迴歸 fixture 產生器 Tests/Linux/Build-HeadlessRichFontListFixtures.py 從呼叫端提供的 DejaVu 字型目錄準備確定性的 Primary 子集與全部十二個真實樣式程式
用 Tests/Linux/Run-HeadlessTypedFormTests-Windows.ps1 與其必需的憑證/金鑰識別目錄產生真實 P1、P2、P3 與 FieldMDP 文件;其輸出包括 p1-signed.pdf、p2-signed.pdf、p3-signed.pdf 與 lock-signed.pdf
Tests/CABI/RunScalarClearNative.ps1 -SourceDirectory Lib -OutputDirectory work/native `
-FontDirectory work/fonts -FixtureDirectory work/scalar `
-ClearFixtureDirectory work/clear -PolicyDirectory work/signed
Tests/CABI/RunScalarClearABI.ps1 -SourceDirectory Lib -OutputDirectory work/abi `
-FontDirectory work/fonts -FixtureDirectory work/scalar `
-ClearFixtureDirectory work/clear -PolicyDirectory work/signed `
-LegacyFixtureDirectory work/typed -LegacyFontDirectory work/legacy-fonts
舊式迴歸參數接受 Run-WindowsTypedFormChecks.ps1 使用的既有 Windows 帶型別表單 fixture 與字型目錄;新的純量檢查也獨立檢查實際內嵌程式、CID 對應、表單值與保留的簽章 ByteRanges
Windows DLL no-op 在兩個回呼都成功後保留精確的已提交 bytes;原生交易 API 保留既有的備妥修訂版發布行為,語意 no-op 時回報零個變更欄位
FDF 區分空選取陣列與選取的空匯出字串;既有 XFDF 空值慣例會對目標選項清單解讀,無法對每個空匯出選項文件提供無損區分