原生 Linux ABI 表單外觀

hpdf_document_execute_json_v1 透過 forms.fill 填寫已載入的 AcroForm 欄位,預設產生對應的 normal 外觀,並保留原始 PDF 修訂、密碼、安全性 dictionary 與文件 ID

{"schemaVersion":1,"type":"forms.fill","fields":[
  {"name":"Notes","value":"First line Ω\nSecond café","fontSize":13},
  {"name":"Combo","value":"two"},
  {"name":"Colors","values":["blue","red"]},
  {"name":"Check","checked":true},
  {"name":"Radio","checked":true,"onState":"B"},
  {"name":"Submit","caption":"Send Ω"}
]}

欄位值與外觀

文字欄位接受 value 或 typed 的 richTextRuns;同時提供 value 與 richTextRuns 時,value 必須與推導出的純文字完全相符,包含 CR 段落分隔符

純文字外觀會遵守繼承的 multiline、comb、對齊與旋轉設定,並內嵌選定的 Unicode TrueType 字型;styled runs 則帶有明確的字型樣式、大小、顏色、對齊、分段與裝飾

密碼文字欄位的外觀與 glyph 對應會以每個 Unicode scalar 一個圓點遮罩,同時保留實際儲存的欄位值與原始加密;檔案選擇欄位顯示字面的 Unicode 路徑,不會開啟選定的檔案

選擇欄位接受單一 value 字串或完整 values 陣列,不可同時提供;匯出值會對應到選項顯示文字,多重選擇按選項索引排序,空陣列則清空選擇

checkbox 與 radio 群組需要布林值 checked;onState 預設為 Yes,明確提供時會選中對應的 radio widget,清除時則同時更新欄位與 widget 狀態

push button 需要 caption,以選定的內嵌 Unicode 字型繪製

forms.read 會為每個選擇欄位回傳完整 values 陣列,清空後即為空陣列;scalar 的 value 成員仍然可用

對 rich 欄位,forms.read 也會回傳儲存的 XHTML richText 字串;一般值替換會同步 RV,styled runs 則需要產生外觀

選項與發布

每次編輯接受 fontFamily(預設 DejaVu Sans)、fontSize(12)、padding(2)、characterSpacing(0)、wordSpacing(0)與 paintWhiteBackground(true)

typed rich 編輯也可使用 fontFamilies 陣列與逐 run 家族選擇,未提供陣列時保留原本的單一家族行為

文字編輯可明確設定 appearance:false 只更新值;選擇與按鈕編輯則必須產生外觀

未知欄位、重複編輯、無效選擇、過量 comb 值、格式錯誤的參數、取消、資源耗盡與 callback 失敗,都不會改變目前載入的文件;輸出會在任何二進位發布 callback 執行之前準備完成

操作結果包含 updated 與目前的欄位清單;可透過 formAppearances 能力陣列查詢支援的外觀類型

原生 C ABI 驗收會產生真實的明文與 AES R5/R6 表單輸出;獨立的 pypdf 與 MuPDF 檢查會檢視選擇索引、widget 狀態、內嵌字型、Unicode 值、加密與實際的外觀像素

原生 Linux C ABI · 簽署工作流程 · 剩餘交付計畫