procedure SetFormFieldFlags(Index: Integer; const Flags: TPdfFormFieldFlags);
| Index | Integer. Oparty na 0 indeks adnotacji pola formularza na bieżącej stronie. Musi mieścić się w zakresie od 0 do AnnotationCount - 1 |
| Flags | TPdfFormFieldFlags. Zbiór wartości TPdfFormFieldFlag do zastosowania wobec pola. Odpowiadają flagom pola AcroForm zdefiniowanym w specyfikacji PDF, takim jak read-only, required czy no-export |
SetFormFieldFlags zapisuje flagi pola AcroForm w adnotacji widżetu formularza o podanym, opartym na 0 indeksie adnotacji na bieżącej stronie. Flagi sterują interaktywnym zachowaniem pola: na przykład oznaczenie go jako read-only uniemożliwia użytkownikowi zmianę jego wartości, a oznaczenie jako required sygnalizuje, że musi ono zostać wypełnione przed przesłaniem formularza
Parametr Index odnosi się do indeksu adnotacji podawanego przez AnnotationCount, a nie do indeksu pola formularza podawanego przez FormFieldCount. Użyj FormFieldInfo lub HasFormFieldAt, aby ustalić, które indeksy adnotacji odpowiadają widżetom formularza. Aby adresować pole przez współrzędne na stronie zamiast przez indeks, użyj SetFormFieldFlagsAt
Zmiany flag działają natychmiast w dokumencie w pamięci, ale nie są utrwalane do czasu wywołania SaveAs. Przy programowym blokowaniu formularza po jego wypełnieniu zalecana sekwencja to: przypisać wartości FormField[], wywołać GenerateFormAppearances, ustawić flagi na read-only, a następnie wywołać SaveAs
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;