procedure SetFormFieldFlags(Index: Integer; const Flags: TPdfFormFieldFlags);
| Index | Integer. Der nullbasierte Anmerkungsindex des Formularfelds auf der aktuellen Seite. Muss im Bereich von 0 bis AnnotationCount - 1 liegen |
| Flags | TPdfFormFieldFlags. 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 |
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
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;