PDFium Delphi Component Docs

GenerateFormAppearances Метод

Компонент: TPdf  ·  Модуль: PDFium
Перестраивает /AP (appearance stream) для каждого виджета формы на каждой странице, отрисовывая каждую страницу через FPDF_FFLDraw. Это рекомендуемый вспомогательный вызов для присваиваний FormField[i] := value — без него значения формы могут быть видны только когда поле находится в фокусе, а любая последующая операция flatten silently потеряет значения. Вызывайте его после всех присваиваний FormField[] и перед SaveAs / FlattenPage / FlattenAllPages

Syntax

procedure GenerateFormAppearances;

Description

GenerateFormAppearances перестраивает записи редактируемых текстовых полей и полей со списком через нативный редактор заполнения форм и синхронизирует состояния записи у флажков и переключателей

Нативные присваивания текстовым полям и полям со списком фиксируют свою запись через редактор заполнения форм; правки прямо в словаре и изначально отсутствующие записи всё ещё могут требовать этого шага регенерации перед уплощением, которое использует сохранённые appearance streams, а не отображение живого редактора

Правильный порядок при заполнении и блокировке формы таков: присвойте все значения FormField[] → один раз вызовите GenerateFormAppearances → при необходимости вызовите FlattenPage / FlattenAllPages → вызовите SaveAs. Если нужно лишь сохранить заполненную форму без уплощения, GenerateFormAppearances всё равно рекомендуется для максимальной совместимости со сторонними PDF-ридерами

Процедура работает со всем документом за один вызов; постраничного варианта нет

Example

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;

Унаследованные виджеты используют временную нативную правку с последующим проверенным восстановлением исходного значения родительского поля; в виджет не записывается теневое значение

Унаследованные поля только для чтения не могут использовать этот рабочий процесс правки и возбуждают ошибку; GenerateFormAppearances не является транзакционной операцией над документом

See Also

FlattenPage, FlattenAllPages, FormField, SaveAs