procedure GenerateFormAppearances;
GenerateFormAppearances bygger om redigerbara text- och combobox-utseenden via den nativa form-fill-redigeraren och synkroniserar utseendetillstånd för kryssrutor och radioknappar
Nativa text- och combobox-tilldelningar registrerar sitt utseende via form-fill-redigeraren; råa ordboksändringar och utseenden som saknades initialt kan fortfarande kräva detta regenereringssteg före utplattning, som använder lagrade utseendeströmmar i stället för den aktiva redigerarens visning
Det korrekta arbetsflödet vid ifyllnad och låsning av ett formulär är: tilldela alla FormField[]-värden → anropa GenerateFormAppearances en gång → anropa valfritt FlattenPage / FlattenAllPages → anropa SaveAs. Om du bara behöver spara det ifyllda formuläret utan att platta till rekommenderas GenerateFormAppearances fortfarande för att säkerställa maximal kompatibilitet med PDF-visningsprogram från tredje part
Proceduren arbetar på hela dokumentet i ett enda anrop; det finns ingen variant per sida
begin
// Assign form field values
Pdf1.FormField[0] := 'Alice Example';
Pdf1.FormField[1] := '[email protected]';
Pdf1.FormField[2] := '2026-05-20';
// Bake appearance streams so values are visible in all viewers
Pdf1.GenerateFormAppearances;
// Flatten and save a non-editable copy
Pdf1.FlattenAllPages;
Pdf1.SaveAs('output_filled_flat.pdf');
end;
Ärvda widgetar använder en tillfällig nativ redigering följd av en verifierad återställning av det ursprungliga förälderfältets värde; inget skuggvärde skrivs till widgeten
Ärvda skrivskyddade fält kan inte använda detta redigeringsarbetsflöde och utlöser ett fel; GenerateFormAppearances är inte en transaktionell dokumentoperation