PDFium Delphi Component Docs

SetFormFieldFlags Méthode

Composant: TPdf  ·  Unit: PDFium
Définit les indicateurs de champ AcroForm pour le champ de formulaire à l’indice d’annotation spécifié sur la page courante

Syntax

procedure SetFormFieldFlags(Index: Integer; const Flags: TPdfFormFieldFlags);

IndexInteger. L’index d’annotation de base 0 du champ de formulaire sur la page courante. Doit être dans la plage 0 à AnnotationCount - 1
FlagsTPdfFormFieldFlags. Un ensemble de valeurs TPdfFormFieldFlag à appliquer au champ. Celles-ci correspondent aux drapeaux de champ AcroForm définis dans la spécification PDF, comme lecture seule, requis ou sans export

Description

SetFormFieldFlags écrit les indicateurs de champ AcroForm dans l’annotation widget de formulaire à l’indice d’annotation à partir de zéro sur la page courante. Les indicateurs contrôlent le comportement interactif du champ : par exemple, le fait de le marquer en lecture seule empêche l’utilisateur de modifier sa valeur, tandis que le fait de le marquer obligatoire indique qu’il doit être rempli avant l’envoi du formulaire

Le paramètre Index fait référence à l’indice d’annotation renvoyé par AnnotationCount, et non à l’indice de champ de formulaire renvoyé par FormFieldCount. Utilisez FormFieldInfo ou HasFormFieldAt pour identifier quels indices d’annotation correspondent aux widgets de formulaire. Pour adresser un champ par coordonnées de page plutôt que par indice, utilisez SetFormFieldFlagsAt

Les changements d’indicateurs prennent effet immédiatement dans le document en mémoire mais ne sont pas persistés tant que SaveAs n’a pas été appelé. Lors du verrouillage programmatique d’un formulaire après remplissage, la séquence recommandée est : affecter les valeurs FormField[], appeler GenerateFormAppearances, définir les indicateurs en lecture seule, puis appeler SaveAs

Example

var
  I: Integer;
begin
  Pdf1.PageIndex := 0;
  // Mark every form field on the page as read-only
  for I := 0 to Pdf1.AnnotationCount - 1 do
    if Pdf1.FormFieldInfo[I].FieldType <> fftUnknown then
      Pdf1.SetFormFieldFlags(I, [ffReadOnly]);
  Pdf1.SaveAs('output_readonly.pdf');
end;

See Also

FormField, FormFieldCount, FormFieldInfo, SetFormFieldFlagsAt, HasFormFieldAt