PDFium Component Docs

FPdfMeasure unit

Unit: FPdfMeasure
Text measurement helpers for TPdf before content is added to the page

Syntax

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;

Public Methods

MemberDescription
TPdf.MeasureTextReturns text width and height in PDF user units for the selected font and size
TPdf.MeasureTextWidthReturns only the text width in PDF user units
TPdf.WrapTextPreserves explicit line breaks, wraps tokens to MaxWidth, and can split oversized tokens at Unicode scalar boundaries

Description

FPdfMeasure adds a class helper to TPdf so text can be measured in PDF user units before drawing

Use MeasureText and MeasureTextWidth for layout calculations, and WrapText to split text into lines that fit a chosen width

The original WrapText overload keeps an oversized token intact for compatibility; pass BreakLongWords=True to split CJK or other text without spaces while preserving UTF-16 surrogate pairs

Example

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;

See Also

TPdf.AddText, TPdf.DrawText