procedure SetFormFieldFlags(Index: Integer; const Flags: TPdfFormFieldFlags);
| Index | Integer. Zero-based indeks adnotacji pola formularza na bieżącej stronie Musi mieścić się w zakresie 0 do AnnotationCount - 1 |
| Flags | TPdfFormFieldFlags. Zestaw wartości TPdfFormFieldFlag do zastosowania do pola Odpowiadają one flagom pola AcroForm zdefiniowanym w specyfikacji PDF, takim jak read-only, required albo no-export |
SetFormFieldFlags zapisuje flagi pola AcroForm do adnotacji widżetu formularza o podanym zero-based indeksie adnotacji na bieżącej stronie Flagi sterują interaktywnym zachowaniem pola: na przykład ustawienie read-only blokuje użytkownikowi zmianę wartości, a ustawienie required sygnalizuje, że pole trzeba wypełnić przed wysłaniem formularza
Parametr Index odnosi się do indeksu adnotacji zwracanego przez AnnotationCount, a nie do indeksu pola formularza zwracanego przez FormFieldCount Użyj FormFieldInfo albo HasFormFieldAt, aby ustalić, które indeksy adnotacji odpowiadają widżetom formularza Aby wskazać pole przez współrzędne strony zamiast przez indeks, użyj SetFormFieldFlagsAt
Zmiany flag zaczynają działać natychmiast w dokumencie w pamięci, ale nie są utrwalane, dopóki nie zostanie wywołane SaveAs Podczas programowego blokowania formularza po jego wypełnieniu zalecana sekwencja to: przypisz wartości FormField[], wywołaj GenerateFormAppearances, ustaw flagi na read-only, a potem wywołaj 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;