PdfConverter/range/basic/TSPdfTextRange.tsf

44 lines
1.1 KiB
Plaintext

type TSPdfTextRange = class(TSPdfBasicRange)
uses TSColorToolKit;
public
function Create();
function Do();override;
public
RPr: RPr;
Text: string;
Font: PdfFont;
end;
function TSPdfTextRange.Create();
begin
class(TSPdfBasicRange).Create();
{self.}RPr := nil;
{self.}Text := "";
{self.}Font := nil;
end;
function TSPdfTextRange.Do();
begin
// println("text = {}, endx = {}, endy = {}, width = {}, page = {}", ansiToUtf8(text), endx, endy, width, page);
[r, g, b] := array(0, 0, 0);
if {self.}RPr.Color.Val then [r, g, b] := TSColorToolKit.HexToRGB({self.}RPr.Color.Val);
{self.}Page.SetRGBFill(r / 255, g / 255, b / 255);
{self.}Page.SetFontAndSize({self.}Font, {self.}RPr.Sz.Val);
{self.}Page.BeginText();
{self.}Page.TextOut({self.}EndX, {self.}EndY, {self.}Text);
{self.}Page.EndText();
{self.}Page.SetRGBFill(0, 0, 0);
if sysparams["_PDF_TEXT_DEBUG_"] then
begin
{self.}Page.SetLineWidth(0.1);
{self.}Page.SetRGBStroke(1.0, 0.5, 0.0);
{self.}Page.MoveTo(0, {self.}EndY);
{self.}Page.LineTo(600, {self.}EndY);
{self.}Page.Stroke();
end
end;