/BaseFont из шрифтового словаря PDF, шрифта, используемого объектом страницы, включая любые стилевые суффиксы вроде -Bold или ,Italicproperty FontBaseName[Index: Integer]: WString; // read only
FontBaseName возвращает базовое PostScript-имя шрифта так, как оно сохранено в шрифтовом словаре PDF — это значение ключа /BaseFont (разделы 9.6 / 9.7 PDF 1.7). Для встроенных subset-шрифтов PDFium сохраняет шестисимвольный префикс (например ABCDEF+Helvetica-Bold), так что значение остаётся точной копией того, что записал продюсер. Для очищенного человекочитаемого имени семейства есть FontFamilyName
Индексатор — это индекс объекта страницы с нуля (0..ObjectCount - 1). Непустой результат дают только текстовые объекты; не-текстовые возвращают пустую строку. Для чтения свойства страница должна быть активна
Базовое имя — самый надёжный идентификатор конкретной гарнитуры, потому что оно собирает семейство и стиль в один токен. Два текстовых прогона могут делить FontFamilyName = Helvetica, но различаться здесь: Helvetica против Helvetica-Bold против Helvetica-Oblique
| Index | Индекс объекта страницы с нуля в диапазоне 0..ObjectCount - 1 |
ABCDEF+) являются частью значения — если нужно чистое имя, отрезайте их самиHelvetica, Helvetica-Bold, Times-Roman, Times-Italic и другиеArial,Bold — не через дефис/BaseFont, возвращается пустая строкаvar
I: Integer;
Base: WString;
begin
Pdf1.PageNumber := 1;
for I := 0 to Pdf1.ObjectCount - 1 do
begin
Base := Pdf1.FontBaseName[I];
if (Base <> '') and (Pos('Bold', Base) > 0) then
Memo1.Lines.Add(Format('Object %d uses %s', [I, Base]));
end;
end;