THotPDF Méthodes de modification des champs de formulaire chargés
Met à jour les contraintes de champ, la géométrie des widgets, l'apparence, la rotation et la visibilité d'un AcroForm existant
Déclaration
procedure SetLoadedFormFieldFlags(FieldIndex, AFlags: Integer);
procedure SetLoadedFormFieldMaxLength(FieldIndex, AMaxLength: Integer);
procedure SetLoadedFormFieldJustification(FieldIndex: Integer;
AJustification: THPDFFormFieldJustification);
procedure SetLoadedFormFieldTooltip(FieldIndex: Integer; const ATooltip: AnsiString);
SetLoadedFormFieldFlagsremplace le masque de bits PDF/FfcompletSetLoadedFormFieldMaxLengthécrit/MaxLen; zéro ou une valeur négative retire la limiteTHPDFFormFieldJustificationcontientffjLeft,ffjCenteretffjRightpour les valeurs PDF/Qde 0 à 2
Géométrie des widgets
function GetLoadedFormFieldWidgetCount(FieldIndex: Integer): Integer;
function GetLoadedFormFieldWidgetRect(FieldIndex, WidgetIndex: Integer;
out ARect: THPDFRect): boolean;
procedure SetLoadedFormFieldWidgetRect(FieldIndex, WidgetIndex: Integer;
X1, Y1, X2, Y2: Single);
- Les index de champs et de widgets sont en base zéro
- L’énumération des widgets expose chaque entrée
/Kidsdes groupes de boutons radio et des autres champs multi-widgets - Les extrémités des rectangles utilisent des points bruts de l’espace utilisateur PDF et sont normalisées avant écriture
Apparence et visibilité des widgets
procedure SetLoadedFormFieldRotation(FieldIndex, ADegrees: Integer);
procedure SetLoadedFormFieldBorderColor(FieldIndex: Integer;
ARed, AGreen, ABlue: Single);
procedure SetLoadedFormFieldVisibility(FieldIndex: Integer;
AVisible, APrintable: boolean);
procedure SetLoadedFormFieldBorderWidth(FieldIndex: Integer; AWidth: Single);
procedure SetLoadedFormFieldBackgroundColor(FieldIndex: Integer;
ARed, AGreen, ABlue: Single);
- La rotation accepte des multiples de 90 degrés positifs ou négatifs et stocke la valeur
/MK /Rnormalisée - Les composantes RGB de bordure et de fond sont bornées à la plage DeviceRGB PDF de 0 à 1
- Les setters d’apparence et de visibilité mettent à jour chaque widget appartenant au champ sélectionné
- La visibilité préserve les flags d’annotation sans rapport tout en contrôlant Hidden, NoView et Print
Comportement de mise à jour incrémentale
- Les dictionnaires de champs, widgets,
/MKet/BSsont marqués sales au niveau où chaque valeur est stockée - Les changements visuels n’invalident que les variantes DPI en cache de la page concernée
- Des index de champs ou widgets invalides laissent le document inchangé
Exemple
PDF.BeginIncrementalUpdate('input.pdf');
PDF.SetLoadedFormFieldMaxLength(0, 40);
PDF.SetLoadedFormFieldJustification(0, ffjCenter);
PDF.SetLoadedFormFieldRotation(0, 90);
PDF.SetLoadedFormFieldBorderColor(0, 0.1, 0.4, 0.8);
PDF.SetLoadedFormFieldWidgetRect(1, 1, 80, 150, 100, 170);
PDF.SaveIncrementalUpdate('updated.pdf');
Comportement
Les indices de champ et de widget sont basés sur zéro et les modifications sont conservées par l'enregistrement incrémentiel