property FontDescent[Index: Integer; FontSize: Single]: Single; // read only
FontDescent сообщает метрику descent (спуск) шрифта, на который ссылается объект страницы по заданному индексу. Descent — вертикальное расстояние (в метриках PDF обычно отрицательное) от базовой линии до самой нижней точки нижних выносных элементов вроде хвостов 'g', 'p', 'y'. Значение от PDFium уже отмасштабировано под аргумент FontSize и выражено в пунктах пользовательского пространства PDF
Индексатор Index — это индекс объекта страницы с нуля (0..ObjectCount - 1). FontSize — размер, для которого нужна метрика; передавайте либо размер, в котором собираетесь рендерить, либо при воспроизведении существующего текста значение из CharacterFontSize. Перед чтением свойства страница должна быть активна
В паре с FontAscent descent даёт полную высоту строки шрифта на выбранном размере: LineHeight := FontAscent - FontDescent. PDFium возвращает 0, когда базовый шрифт не отдаёт метрику (например, некоторые шрифты Type3) или объект страницы не текст
| Index | Индекс объекта страницы с нуля в диапазоне 0..ObjectCount - 1 |
| FontSize | Размер шрифта в пунктах PDF для масштабирования метрики (например 12.0). Для реалистичного значения спуска берите фактический размер отрисовки |
Abs(FontDescent[...])FontSize на строкеvar
I: Integer;
Asc, Dsc, LineHeight: Single;
begin
Pdf1.PageNumber := 1;
for I := 0 to Pdf1.ObjectCount - 1 do
begin
Asc := Pdf1.FontAscent[I, 12.0];
Dsc := Pdf1.FontDescent[I, 12.0];
LineHeight := Asc - Dsc;
if LineHeight > 0 then
Memo1.Lines.Add(Format('Object %d: line height = %.2f pt', [I, LineHeight]));
end;
end;