TPdfMeasureHelper = class helper for TPdf
procedure MeasureText(const Text, Font: WString; FontSize: Single; out Width, Height: Double);
function MeasureTextWidth(const Text, Font: WString; FontSize: Single): Double;
function WrapText(const Text, Font: WString; FontSize: Single; MaxWidth: Double): TArray<WString>;
function WrapText(const Text, Font: WString; FontSize: Single; MaxWidth: Double; BreakLongWords: Boolean): TArray<WString>;
end;
| Member | Description |
|---|---|
TPdf.MeasureText | Возвращает ширину и высоту текста в пользовательских единицах PDF для выбранного шрифта и размера |
TPdf.MeasureTextWidth | Возвращает только ширину текста в пользовательских единицах PDF |
TPdf.WrapText | Сохраняет явные разрывы строк, переносит лексемы в пределах MaxWidth и может разбивать слишком длинные лексемы по границам скалярных значений Unicode |
FPdfMeasure добавляет к TPdf помощник классов, чтобы текст можно было измерять в пользовательских единицах PDF до отрисовки
Используйте MeasureText и MeasureTextWidth для расчётов разметки, а WrapText — чтобы разбить текст на строки, умещающиеся в заданную ширину
Исходная перегрузка WrapText сохраняет слишком длинную лексему целой для совместимости; передайте BreakLongWords=True, чтобы разбивать текст CJK или другой текст без пробелов с сохранением суррогатных пар UTF-16
var
Width, Height: Double;
Lines: TArray<WString>;
begin
Pdf.MeasureText('Invoice total', 'Arial', 12, Width, Height);
Lines := Pdf.WrapText(LongText, 'Arial', 10, 240, True);
end;