procedure GenerateFormAppearances;
GenerateFormAppearances przebudowuje edytowalne appearance tekstu i pól kombi przez natywny edytor form-fill oraz synchronizuje stany appearance pól wyboru i przycisków radiowych
Natywne przypisania tekstu i pól kombi zatwierdzają swój appearance przez edytor form-fill; surowe edycje słownika i początkowo brakujące appearance mogą wciąż wymagać tego kroku regeneracji przed spłaszczeniem, które używa zapisanych strumieni appearance, a nie wyświetlania z żywego edytora
Poprawny przepływ pracy przy wypełnianiu i blokowaniu formularza wygląda tak: przypisz wszystkie wartości FormField[] → wywołaj raz GenerateFormAppearances → opcjonalnie wywołaj FlattenPage / FlattenAllPages → wywołaj SaveAs. Jeśli chcesz tylko zapisać wypełniony formularz bez spłaszczania, GenerateFormAppearances nadal jest zalecane, aby zapewnić maksymalną zgodność z zewnętrznymi przeglądarkami PDF
Procedura działa na całym dokumencie w jednym wywołaniu; nie istnieje wariant dla pojedynczej strony
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;
Odziedziczone widgety używają tymczasowej natywnej edycji, po której następuje zweryfikowane przywrócenie pierwotnej wartości pola nadrzędnego; żadna wartość-cienia nie jest zapisywana w widżecie
Odziedziczone pola tylko do odczytu nie mogą używać tego przepływu edycji i zgłaszają błąd; GenerateFormAppearances nie jest transakcyjną operacją dokumentu