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에 맞게 래핑하며, 크기가 초과된 토큰을 유니코드 스칼라 경계에서 분할할 수 있습니다 |
FPdfMeasure는 클래스 헬퍼를 TPdf에 추가하여 그리기 전에 PDF 사용자 단위로 텍스트를 측정할 수 있게 합니다
레이아웃 계산에는 MeasureText와 MeasureTextWidth를 사용하고, 지정한 너비에 맞도록 텍스트를 여러 줄로 나눌 때는 WrapText를 사용합니다
원래의 WrapText 오버로드는 호환성을 위해 크기가 초과된 토큰을 그대로 유지합니다. 공백 없는 CJK 등의 텍스트를 분할하려면 BreakLongWords=True를 전달하며, 이때 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;