property Page: FPDF_PAGE; // read only
Page exposes the raw PDFium FPDF_PAGE handle bound to the currently active page. Handle выделяется, когда задаётся PageNumber (или когда Active переходит в True), и остаётся живым на всё время существования этой привязки страницы. Это тот же handle, который ожидает C API PDFium для каждого вызова FPDFPage_*, FPDF_RenderPage*, аннотации, потока содержимого и form widget
Handle действителен только пока Active равно True и задан корректный PageNumber. Назначение нового PageNumber, вызов ReloadPage или возврат Active в False уничтожает существующий handle и, в первых двух случаях, создает новый. Не вызывайте FPDF_ClosePage для этого handle — компонент владеет его временем жизни и автоматически освободит его
Page — это продвинутое свойство, полезное, когда нужно вызывать API PDFium, которые PDFiumPas еще не обернул, например при регенерации appearance stream, учете page-object или низкоуровневой доработке извлечения текста. Большинству вызывающих кода следует предпочитать свойства более высокого уровня (PageWidth, PageHeight, RenderToBitmap, Annotation и так далее), которые уже корректно управляют handle
nil, когда ни одна страница не активна. Всегда проверяйте это перед передачей handle в функцию PDFiumDocumentDocument при вызове API PDFium, которые принимают оба handle — например FPDFPage_Delete(Pdf.Document, Pdf.PageNumber - 1)
var P: FPDF_PAGE;
Pdf1.Active := True;
Pdf1.PageNumber := 1;
P := Pdf1.Page;
if Assigned(P) then
ShowMessage(Format('%.0f x %.0f points',
[FPDF_GetPageWidth(P), FPDF_GetPageHeight(P)]));