procedure SetFormFieldFlags(Index: Integer; const Flags: TPdfFormFieldFlags);
| Index | Integer. De 0-gebaseerde annotatie-index van het formulierveld op de huidige pagina. Moet in het bereik 0 tot AnnotationCount - 1 liggen |
| Flags | TPdfFormFieldFlags. Verzameling TPdfFormFieldFlag-waarden om op het veld toe te passen. Deze komen overeen met de AcroForm-veldvlaggen die in de PDF-specificatie zijn gedefinieerd, zoals read-only, required of no-export |
SetFormFieldFlags schrijft AcroForm-veldvlaggen naar de formwidget-annotatie op de gegeven 0-gebaseerde annotatie-index van de huidige pagina. De vlaggen bepalen het interactieve gedrag van het veld: bijvoorbeeld read-only maken voorkomt dat de gebruiker de waarde wijzigt, terwijl required maken aangeeft dat het veld moet worden ingevuld voordat het formulier kan worden verzonden
De parameter Index verwijst naar de annotatie-index zoals gerapporteerd door AnnotationCount, niet naar de formulierveld-index uit FormFieldCount. Gebruik FormFieldInfo of HasFormFieldAt om te bepalen welke annotatie-indexen overeenkomen met formwidgets. Om een veld via paginacoördinaten in plaats van via een index aan te spreken, gebruikt u SetFormFieldFlagsAt
Vlagwijzigingen werken onmiddellijk in het in-memory document, maar worden pas vastgelegd wanneer SaveAs wordt aangeroepen. Wanneer u een formulier na het invullen programmatisch vergrendelt, is de aanbevolen volgorde: FormField[]-waarden toewijzen, GenerateFormAppearances aanroepen, vlaggen op read-only zetten en dan SaveAs aanroepen
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;