原生 Linux C ABI 表單資料交換
使用既有的版本化 hpdf_document_execute_json_v1 進入點與 hpdf_operation_v1 記錄,把 scalar 與有界的 rich AcroForm 值匯出或匯入成 FDF 或 XFDF
ABI 版本、匯出符號與 callback 記錄布局維持不變
| 操作 | InputIO | OutputIO | ResultIO |
|---|---|---|---|
forms.export | 選填的 PDF 輸入;未提供時使用已載入文件 | 實際的 FDF 或 XFDF 位元組 | JSON 格式、媒體類型、欄位數與輸出位元組數 |
forms.import | 必填的 FDF 或 XFDF 位元組;目的地 PDF 必須已載入 | 已準備好的更新版 PDF 位元組 | JSON 格式、媒體類型、欄位數與變更欄位數 |
兩個操作都要求 format 必須是 fdf 或 xfdf,且 schemaVersion 設為 1
{"schemaVersion":1,"type":"forms.export","format":"xfdf"}
{"schemaVersion":1,"type":"forms.import","format":"fdf","fontFamily":"DejaVu Sans","fontSize":12}
支援的值包含巢狀 Unicode 文字欄位、checkbox 與 radio 的匯出狀態、scalar 選項與多重選項;接受 UTF-8 與帶 BOM 的 UTF-16 XFDF
FDF RV 與 XFDF value-richtext 使用 inline-xhtml-v1 rich 設定檔,由 fontFamily 選出實際的 regular、bold、italic 與 bold-italic 字型程式
簽名與 pushbutton 欄位只以名稱表示、不匯入值,保留已存在的簽章與既有按鈕行為
匯入會重建真實外觀,並保留已驗證的 AES R5/R6 加密、唯讀欄位、DocMDP 權限與 FieldMDP 鎖定
選填的 signaturePolicy 接受 requireCAdES、requireTimestamp、requireTimestampRevocation、既有的信任檔或 PEM 設定,以及採用簽署選項 schema 的 revocationInfo
明確的已簽署撤銷政策會驗證實際內嵌的簽章屬性,包含 RFC 3161 文件時間戳裡的屬性;外部提供的狀態位元組無法取代缺失的必要屬性
選填的 formDataLimits 包含正整數的 maxBytes、maxFields、maxObjects、maxDepth、maxValues、maxValueCodeUnits 與 maxTotalCodeUnits 設定,界限為原生預設值與操作容量
既有的 limits.memoryBytes、outputBytes 與 resultBytes 會進一步約束準備與發布;交換限額耗盡時回傳 HPDF_STATUS_BUDGET_EXCEEDED
callback 在呼叫執行緒上同步執行,可能回傳部分讀寫;讀取表單輸入、解析、準備外觀與發布結果的過程都會檢查取消
已載入的目的地 handle 只在更新的 PDF 與 JSON 結果 callback 都成功後才提交;callback 錯誤或取消會保留其先前狀態,而呼叫端 sink 已接收的位元組仍由呼叫端自行負責
標註 XFDF 操作使用另一套附加設定檔,支援 popup/reply 參照與內嵌檔案或聲音 stream
任意 CSS 版面、內嵌 FDF 檔、任意 action 與增量 FDF 修訂交換,仍不在表單資料設定檔的範圍內