procedure SetFormFieldFlags(Index: Integer; const Flags: TPdfFormFieldFlags);
| Index | Integer. Geçerli sayfada form alanının sıfır tabanlı annotation indeksi. 0 ile AnnotationCount - 1 aralığında olmalıdır |
| Flags | TPdfFormFieldFlags. Alana uygulanacak TPdfFormFieldFlag değerleri kümesi. Bunlar, PDF specification'ında tanımlı AcroForm alan flag'lerine karşılık gelir; salt okunur, zorunlu veya no-export gibi |
SetFormFieldFlags, geçerli sayfada verilen sıfır tabanlı annotation indeksindeki form widget annotation'ına AcroForm alan flag'lerini yazar. Flag'ler alanın etkileşimli davranışını denetler: örneğin salt okunur işaretlemek kullanıcının değerini değiştirmesini engeller; zorunlu işaretlemek ise form gönderilmeden önce doldurulması gerektiğini belirtir
Index parametresi, FormFieldCount'un bildirdiği form-alan indeksini değil, AnnotationCount'un bildirdiği annotation indeksini ifade eder. Hangi annotation indekslerinin form widget'larına karşılık geldiğini belirlemek için FormFieldInfo'yu veya HasFormFieldAt'ı kullanın. Bir alana indeks yerine sayfa koordinatlarıyla erişmek için SetFormFieldFlagsAt'ı kullanın
Flag değişiklikleri bellek içi dokümanda anında etkili olur ama SaveAs çağrılana kadar kalıcılaşmaz. Bir formu doldurduktan sonra programatik olarak kilitlearken önerilen sıra şudur: FormField[] değerlerini atayın, GenerateFormAppearances'i çağırın, flag'leri salt okunur olarak ayarlayın, ardından SaveAs'i çağırın
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;