procedure SetFormFieldFlags(Index: Integer; const Flags: TPdfFormFieldFlags);
| Index | Integer. Indice di annotazione a base zero del campo modulo sulla pagina corrente. Deve essere nell'intervallo da 0 a AnnotationCount - 1 |
| Flags | TPdfFormFieldFlags. Insieme di valori TPdfFormFieldFlag da applicare al campo. Corrispondono ai flag di campo AcroForm definiti nella specifica PDF, come sola lettura, obbligatorio o no-export |
SetFormFieldFlags scrive i flag di campo AcroForm nell'annotazione widget del modulo all'indice di annotazione basato su zero indicato nella pagina corrente. I flag controllano il comportamento interattivo del campo: ad esempio, contrassegnarlo come di sola lettura impedisce all'utente di modificarne il valore, mentre contrassegnarlo come obbligatorio segnala che deve essere compilato prima che il modulo possa essere inviato.
Il parametro Index si riferisce all'indice di annotazione come riportato da AnnotationCount, non all'indice di campo di modulo riportato da FormFieldCount. Usa FormFieldInfo o HasFormFieldAt per identificare quali indici di annotazione corrispondono a widget di modulo. Per individuare un campo tramite coordinate di pagina anziché indice, usa SetFormFieldFlagsAt.
Le modifiche ai flag hanno effetto immediato nel documento in memoria ma non vengono rese persistenti finché non viene chiamato SaveAs. Quando si blocca programmaticamente un modulo dopo averlo compilato, la sequenza consigliata è: assegna i valori FormField[], chiama GenerateFormAppearances, imposta i flag su sola lettura, poi chiama 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;