FPDF_FONT шрифта, используемого объектом страницы. Дескриптор дает опытным вызывающим прямой доступ к API шрифтов PDFium, не обернутым компонентомproperty FontHandle[Index: Integer]: FPDF_FONT; // read only
FontHandle возвращает сырой указатель шрифта PDFium (FPDF_FONT), связанный с текстовым объектом страницы по переданному индексу. Внутри это то, что PDFium отдаёт из FPDFTextObj_GetFont; большинство остальных свойств Font* у TPdf — FontAscent, FontDescent, FontFamilyName, FontBaseName, FontIsEmbedded, FontItalicAngle, FontWeight, FontData — просто удобные обёртки над ним
Индекс — это индекс объекта страницы с нуля в диапазоне 0..ObjectCount - 1. Шрифт несут только объекты типа text; для image, path или shading вызов вернёт nil. Перед чтением свойства страница должна быть активна
Возвращённый дескриптор принадлежит PDFium и остаётся валидным, только пока текущая страница загружена. Не освобождайте его, не храните между сменами страниц и не вызывайте на нём деструктивные API PDFium — обращайтесь с ним как с непрозрачным токеном только для чтения
| Index | Индекс объекта страницы с нуля. Сначала проверьте через ObjectType, что объект текст; не-текстовые возвращают nil |
FPDFFont_* всегда проверяйте на nilFPDFFont_GetFlags или FPDFFont_GetFontBBoxvar
I: Integer;
H: FPDF_FONT;
begin
Pdf1.PageNumber := 1;
for I := 0 to Pdf1.ObjectCount - 1 do
begin
H := Pdf1.FontHandle[I];
if H <> nil then
Memo1.Lines.Add(Format('Object %d uses font %s',
[I, Pdf1.FontFamilyName[I]]));
end;
end;