property Page: FPDF_PAGE; // read only
Page отдаёт сырой дескриптор FPDF_PAGE из PDFium, привязанный к текущей активной странице. Дескриптор выделяется при установке PageNumber (или при переключении Active в True) и живёт всё время этой привязки к странице. Это тот же дескриптор, который C API PDFium ожидает в каждом вызове FPDFPage_*, FPDF_RenderPage*, аннотаций, content stream и виджетов форм
Дескриптор валиден, только пока Active равно True и задан валидный PageNumber. Присваивание нового PageNumber, вызов ReloadPage или возврат Active в False уничтожает существующий дескриптор и (в первых двух случаях) создаёт новый. Не вызывайте FPDF_ClosePage на этом дескрипторе — временем жизни владеет компонент и разберёт его автоматически
Page — свойство для продвинутых сценариев: вызов API PDFium, которые PDFium Delphi Component ещё не обернул, например собственная перегенерация appearance stream, bookkeeping объектов страницы или низкоуровневые настройки извлечения текста. Большинству вызывающих лучше высокоуровневые свойства (PageWidth, PageHeight, RenderToBitmap, Annotation и т.д.), которые уже управляют дескриптором правильно
nil, когда активной страницы нет. Всегда проверяйте, прежде чем передавать дескриптор в функцию PDFiumDocumentDocument в вызовах PDFium, принимающих оба дескриптора — например 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)]));