Procesare avansată AcroForm
HotPDF poate recalcula câmpuri încărcate, regenera aspecte de text variabil bazate pe standarde, rezolva stări de aspect ale adnotărilor și aplatiza un set selectat de câmpuri fără a rescrie paginile neatinse
Ordinea calculului
RecalculateLoadedFormFields urmează tabloul încărcat /AcroForm /CO și evaluează operațiile mărginite AFSimple_Calculate SUM, AVG, PRD, MIN și MAX prin evaluatorul sigur de scripturi de câmp
ApplyLoadedFieldCalculation instalează acțiunea de calcul și adaugă câmpul țintă la /CO fără intrări duplicate
Scripturi de câmp sigure
EvaluateLoadedFieldJavaScript evaluează doar instrucțiuni declarative de calcul și validare asociate cu declanșatorul de câmp solicitat
- Expresiile suportă valori boolean, număr, șir, null, undefined și tablou, cu operatori aritmetici, unari, de comparare, de egalitate, logici cu scurtcircuit și condiționali
event.valuepăstrează semantica intrării ca șir, în timp ce textul numeric al câmpului rămâne numeric pentru compatibilitate cu calculele existente- Ajutoarele permise acoperă conversia de numere și șiruri, parsarea, funcții
Mathselectate, parsarea și construirea deterministe a datelor UTC și inspectarea mărginită a șirurilor și tablourilor AFSimple_Calculate,AFRange_Validate, atribuireaevent.valueși atribuireaevent.rcoferă rezultate deterministe de calcul și validare- Buclele, evaluarea dinamică, accesul la aplicații, trimiterea, importul, lansarea și alte conținuturi active sunt respinse
- Limitele sunt 8.192 de octeți de script, 32 de instrucțiuni, 4.096 de octeți de expresie, 32 de niveluri de parser, 1.024 de operații, 64 de argumente, 128 de elemente de tablou, 65.536 de octeți de șir și 262.144 de octeți de valori urmărite
Aspecte de text variabil
EnsureLoadedFieldAppearanceStream parcurge fiecare widget și moștenește valorile /DA, /Q, /V, /DV, /Ff și /MaxLen din ierarhia de câmpuri sau AcroForm
- Alinierea la stânga, centru și dreapta folosește coordonatele locale de aspect ale widget-ului
- Textul pe mai multe linii primește plasare și decupare mărginite ale liniilor
- O dimensiune zero a fontului de aspect implicit declanșează dimensionarea automată
- Câmpurile comb plasează fiecare caracter independent în celulele
/MaxLen
Stări de aspect ale adnotărilor
GetLoadedAnnotationAppearanceStream rezolvă aspecte normale, rollover sau down și revine de la rollover sau down la normal
Dicționarele de stare folosesc /AS, /V sau /DV moștenit, starea părintelui, /Off și fallback-ul cu flux unic, în această ordine
Aplatizare selectivă
FlattenLoadedFormFields pictează doar aspectele selectate ale widget-urilor în paginile lor proprietare, elimină doar câmpurile și adnotările potrivite și păstrează fiecare pagină și câmp neatinse
Poarta implicită de permisiuni refuză schimbările structurale sub DocMDP și aplică blocările FieldMDP All, Include și Exclude înainte de modificarea oricărei pagini
PDF.BeginIncrementalUpdate('SignedForm.pdf');
PDF.RecalculateLoadedFormFields;
PDF.FlattenLoadedFormFields(['Subtotal', 'Total']);
PDF.SaveIncrementalUpdate('SignedForm-updated.pdf');