From c6de45431dfd6fe10f96cdbe7db97c2d810fe08f Mon Sep 17 00:00:00 2001 From: jesusr Date: Fri, 28 Oct 2011 21:16:44 +0000 Subject: [PATCH] PowerPDF: fix showing UTF8 string in preview, issue 20485 git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2101 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/powerpdf/PReport.pas | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/components/powerpdf/PReport.pas b/components/powerpdf/PReport.pas index e49faf873..a793e6da7 100644 --- a/components/powerpdf/PReport.pas +++ b/components/powerpdf/PReport.pas @@ -43,7 +43,7 @@ interface uses {$IFDEF LAZ_POWERPDF} - LCLType, LMessages, LCLIntf, GraphType, FPCanvas, + LCLType, LMessages, LCLIntf, GraphType, FPCanvas, LCLProc, {$ELSE} Windows, Messages, {$ENDIF} @@ -1628,6 +1628,26 @@ begin end; // InternalTextout +{$IFDEF LAZ_POWERPDF} +function TPRCustomLabel.InternalTextout(APdfCanvas: TPdfCanvas; + S: string; X, Y: integer): Single; +var + Pos: Double; + i: integer; + Word: string; +begin + Pos := X; + for i:=1 to UTF8Length(S) do begin + Word := UTF8Copy(s, i, 1); + Canvas.TextOut(Round(Pos), Y, Word); + with APdfCanvas do + Pos := Pos + TextWidth(Word) + Attribute.CharSpace; + if Word=' ' then + Pos := Pos + FWordSpace + end; + result := Pos; +end; +{$ELSE} function TPRCustomLabel.InternalTextout(APdfCanvas: TPdfCanvas; S: string; X, Y: integer): Single; var @@ -1664,6 +1684,7 @@ begin end; result := Pos; end; +{$ENDIF} // GetFontClassName function TPRCustomLabel.GetFontClassName: string;