PDFium Delphi Component Docs

SetFormFieldFlags Methode

Komponente: TPdf  ·  Unit: PDFium
Setzt AcroForm-Feldflags für das Formularfeld am angegebenen Anmerkungsindex auf der aktuellen Seite

Syntax

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

IndexInteger. Der nullbasierte Anmerkungsindex des Formularfelds auf der aktuellen Seite. Muss im Bereich von 0 bis AnnotationCount - 1 liegen
FlagsTPdfFormFieldFlags. Eine Menge von TPdfFormFieldFlag-Werten, die auf das Feld angewendet werden sollen. Sie entsprechen den in der PDF-Spezifikation definierten AcroForm-Feldflags, etwa schreibgeschützt, erforderlich oder nicht exportierbar

Description

SetFormFieldFlags schreibt AcroForm-Feldflags in die Formular-Widget-Anmerkung am angegebenen nullbasierten Anmerkungsindex auf der aktuellen Seite. Die Flags steuern das interaktive Verhalten des Felds: Beispielsweise verhindert das Markieren als schreibgeschützt, dass der Benutzer seinen Wert ändern kann, während das Markieren als erforderlich signalisiert, dass es ausgefüllt werden muss, bevor das Formular übermittelt werden kann

Der Parameter Index bezieht sich auf den von AnnotationCount gemeldeten Anmerkungsindex, nicht auf den von FormFieldCount gemeldeten Formularfeldindex. Verwenden Sie FormFieldInfo oder HasFormFieldAt, um zu ermitteln, welche Anmerkungsindizes Formular-Widgets entsprechen. Um ein Feld über Seitenkoordinaten statt über einen Index anzusprechen, verwenden Sie SetFormFieldFlagsAt

Flag-Änderungen werden im Speicherdokument sofort wirksam, aber erst mit dem Aufruf von SaveAs dauerhaft gespeichert. Beim programmgesteuerten Sperren eines Formulars nach dem Ausfüllen lautet die empfohlene Reihenfolge: FormField[]-Werte zuweisen, GenerateFormAppearances aufrufen, Flags auf schreibgeschützt setzen und dann SaveAs aufrufen

Example

var
  I: Integer;
begin
  Pdf1.PageIndex := 0;
  // Jedes Formularfeld auf der Seite als schreibgeschützt markieren
  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