進階 AcroForm 處理

HotPDF 可以重新計算已載入欄位、重新產生以標準為基礎的可變文字外觀、解析註解外觀狀態,並在不必重寫未動到的頁面之情況下平面化所選的欄位集合

計算順序

RecalculateLoadedFormFields 會遵循已載入的 /AcroForm /CO 陣列,並透過安全的欄位指令碼求值器處理有界的 AFSimple_Calculate 運算 SUM、AVG、PRD、MIN 與 MAX

ApplyLoadedFieldCalculation 會安裝計算動作,並在不產生重複項目的情況下把目標欄位加入 /CO

安全的欄位指令碼

EvaluateLoadedFieldJavaScript 只會求值與所要求之欄位觸發器相關聯的宣告式計算與驗證陳述式

可變文字外觀

EnsureLoadedFieldAppearanceStream 會遍歷每個表單物件,並從欄位階層或 AcroForm 繼承 /DA、/Q、/V、/DV、/Ff 與 /MaxLen 的值

註解外觀狀態

GetLoadedAnnotationAppearanceStream 會解析一般、滑過或按下外觀,並在滑過或按下之後退回一般

狀態字典依序使用 /AS、繼承的 /V 或 /DV、父狀態、/Off 與單一串流遞補

選擇性平面化

FlattenLoadedFormFields 只會將所選表單物件外觀繪製到其所屬頁面、只移除相符的欄位與註解,並保留每一頁未動到的頁面與欄位

預設權限閘會在 DocMDP 之下拒絕結構變更,並在修改任何頁面之前強制 FieldMDP All、Include 與 Exclude 鎖定

PDF.BeginIncrementalUpdate('SignedForm.pdf');
PDF.RecalculateLoadedFormFields;
PDF.FlattenLoadedFormFields(['Subtotal', 'Total']);
PDF.SaveIncrementalUpdate('SignedForm-updated.pdf');

相關 API