property FormHandle: FPDF_FORMHANDLE; // read only
FormHandle отдаёт сырой FPDF_FORMHANDLE из PDFium, созданный через FPDFDOC_InitFormFillEnvironment для текущего загруженного документа. Этот дескриптор — вход в слой интерактивных форм PDFium: его ожидает каждая функция FORM_* и FPDF_FFL*, он управляет отрисовкой полей форм, доставкой событий мыши/клавиатуры, отслеживанием фокуса и Callback JavaScript / XFA (PDFium fpdf_formfill.h)
Дескриптор создаётся, когда Active становится равным True, и уничтожается, когда Active возвращается в False или компонент освобождается. Считайте его непрозрачным и короткоживущим — не храните значение дольше одного цикла загрузки/выгрузки и никогда не вызывайте на нём FPDFDOC_ExitFormFillEnvironment сами; временем жизни владеет компонент
FormHandle — свойство для продвинутых сценариев: маршрутизация низкоуровневых событий форм (своя доставка мыши/клавиатуры, программная установка фокуса поля, скриптовая перегенерация appearance, обновление XFA), когда высокоуровневым свойствам FormField / FormFieldAt не хватает гранулярности. Для отрисовки форм VCL TPdfView уже вплетает этот дескриптор в цикл отрисовки; вручную он нужен, только если вы обходите готовый вьювер или строите альтернативный конвейер событий
nil, когда документ не загружен. Всегда проверяйте перед вызовом form-fill API PDFium
var FH: FPDF_FORMHANDLE;
Pdf1.Active := True;
FH := Pdf1.FormHandle;
if Assigned(FH) then
FPDF_FFLDraw(FH, Bmp, Pdf1.Page, 0, 0, 800, 600, 0, FPDF_ANNOT);