property FormHandle: FPDF_FORMHANDLE; // read only
FormHandle показывает необработанный FPDF_FORMHANDLE PDFium, созданный через
FPDFDOC_InitFormFillEnvironment для текущего загруженного документа. Этот
дескриптор является входом в интерактивный слой форм PDFium: это параметр, который ожидает
каждая функция FORM_* и FPDF_FFL*, и он управляет отрисовкой
полей формы, доставкой событий мыши и клавиатуры, отслеживанием фокуса, а также вызовами
JavaScript / XFA (PDFium fpdf_formfill.h)
Дескриптор создается, когда Active становится True, и
уничтожается, когда Active возвращается к False или компонент
освобождается. Считайте его непрозрачным и краткоживущим — не храните значение дольше
одного цикла загрузки и выгрузки и никогда не вызывайте FPDFDOC_ExitFormFillEnvironment
самостоятельно; жизненным циклом управляет компонент
FormHandle — это расширенное свойство, полезное для маршрутизации низкоуровневых событий
формы (пользовательская доставка мыши и клавиатуры, программный перевод поля в фокус,
перестроение оформлений, обновление XFA), когда свойств верхнего уровня FormField /
FormFieldAt недостаточно по детализации. Для отрисовки формы VCL
TPdfView уже подключает этот дескриптор к своему циклу рисования; ручное
использование нужно только тогда, когда вы обходите поставляемый просмотрщик или строите
альтернативный pipeline событий
nil, когда документ не загружен. Всегда проверяйте это
перед вызовом API form-fill 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);