PDFium Component Docs

SetFormFieldFlags Metoda

Ten wpis API zachowuje identyfikatory, sygnatury, bloki kodu i terminy PDF w oryginalnej postaci.
Komponent: TPdf  ·  Moduł: PDFium
Ustawia flagi pola AcroForm dla pola formularza o podanym indeksie adnotacji na bieżącej stronie

Składnia

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

IndexInteger. Zero-based indeks adnotacji pola formularza na bieżącej stronie Musi mieścić się w zakresie 0 do AnnotationCount - 1
FlagsTPdfFormFieldFlags. 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

Opis

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

Przykład

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;

Zobacz też

FormField, FormFieldCount, FormFieldInfo, SetFormFieldFlagsAt, HasFormFieldAt