procedure SetFormFieldFlags(Index: Integer; const Flags: TPdfFormFieldFlags);
| Index | Integer. Der nullbasierte Anmerkungsindex des Formularfelds auf der aktuellen Seite. Muss im Bereich 0 bis AnnotationCount - 1 liegen |
| Flags | TPdfFormFieldFlags. Eine Menge von TPdfFormFieldFlag-Werten, die auf das Feld angewendet werden. Sie entsprechen den im PDF-Standard definierten AcroForm-Feldflags, etwa read-only, required oder no-export |
SetFormFieldFlags schreibt AcroForm-Feldflags in die Form-Widget-Anmerkung am angegebenen nullbasierten Anmerkungsindex auf der aktuellen Seite. Die Flags steuern das interaktive Verhalten des Felds: Wenn es beispielsweise als schreibgeschützt markiert wird, kann der Benutzer seinen Wert nicht mehr ändern, und wenn es als erforderlich markiert wird, signalisiert das, dass es vor dem Absenden des Formulars ausgefüllt sein muss
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 den Index anzusprechen, verwenden Sie SetFormFieldFlagsAt
Flag-Änderungen wirken sofort im speicherinternen Dokument, werden aber erst nach einem Aufruf von SaveAs dauerhaft gespeichert. Wenn ein Formular nach dem Ausfüllen programmgesteuert gesperrt werden soll, ist die empfohlene Reihenfolge: FormField[]-Werte zuweisen, GenerateFormAppearances aufrufen, Flags auf read-only setzen und dann SaveAs aufrufen
var
I: Integer;
begin
Pdf1.PageIndex := 0;
// Markiert jedes Formularfeld auf der Seite als schreibgeschützt
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;