Traitement AcroForm avancé
HotPDF peut recalculer les champs chargés, régénérer des apparences de texte variable conformes aux normes, résoudre les états d’apparence des annotations et aplatir un ensemble de champs choisi sans réécrire les pages intactes
Ordre de calcul
RecalculateLoadedFormFields suit le tableau /AcroForm /CO chargé et évalue les opérations limitées AFSimple_Calculate SUM, AVG, PRD, MIN et MAX par l’évaluateur sûr de scripts de champ
ApplyLoadedFieldCalculation installe l’action de calcul et ajoute le champ cible à /CO sans entrée en double
Scripts de champ sûrs
EvaluateLoadedFieldJavaScript n’évalue que les instructions déclaratives de calcul et de validation associées au déclencheur de champ demandé
- Les expressions prennent en charge les valeurs booléennes, numériques, chaînes, null, undefined et tableaux, avec opérateurs arithmétiques, unaires, de comparaison, d’égalité, logiques à court-circuit et conditionnels
event.valuepréserve la sémantique des entrées de chaînes, tandis que le texte numérique d’un champ reste numérique pour assurer la compatibilité avec les calculs existants- Les assistants autorisés couvrent la conversion et l’analyse de nombres et chaînes, certaines fonctions
Math, l’analyse et la construction déterministes de dates UTC, ainsi que l’inspection bornée des chaînes et tableaux AFSimple_Calculate,AFRange_Validate, l’affectation deevent.valueet celle deevent.rcfournissent des résultats déterministes de calcul et validation- Les boucles, l’évaluation dynamique, l’accès à l’application, l’envoi, l’importation, le lancement et les autres contenus actifs sont refusés
- Les limites sont de 8 192 octets de script, 32 instructions, 4 096 octets d’expression, 32 niveaux d’analyse, 1 024 opérations, 64 arguments, 128 éléments de tableau, 65 536 octets de chaînes et 262 144 octets de valeurs suivies
Apparences de texte variable
EnsureLoadedFieldAppearanceStream parcourt chaque widget et hérite des valeurs /DA, /Q, /V, /DV, /Ff et /MaxLen depuis la hiérarchie des champs ou AcroForm
- L’alignement à gauche, centré et à droite emploie les coordonnées locales de l’apparence du widget
- Le texte multiligne bénéficie d’un placement de lignes et d’un découpage bornés
- Une taille de police d’apparence par défaut à zéro déclenche un dimensionnement automatique
- Les champs comb placent chaque caractère indépendamment dans les cellules
/MaxLen
États d’apparence des annotations
GetLoadedAnnotationAppearanceStream résout les apparences normale, de survol ou enfoncée et revient de l’apparence de survol ou enfoncée à l’apparence normale
Les dictionnaires d’états utilisent successivement /AS, /V ou /DV hérités, l’état parent, /Off et la solution de repli à flux unique
Aplatissement sélectif
FlattenLoadedFormFields peint seulement les apparences des widgets sélectionnés dans leurs pages propriétaires, ne supprime que les champs et annotations correspondants et conserve chaque page et champ intact
La barrière d’autorisation par défaut refuse les modifications structurelles sous DocMDP et applique les verrous FieldMDP All, Include et Exclude avant toute modification de page
PDF.BeginIncrementalUpdate('SignedForm.pdf');
PDF.RecalculateLoadedFormFields;
PDF.FlattenLoadedFormFields(['Subtotal', 'Total']);
PDF.SaveIncrementalUpdate('SignedForm-updated.pdf');