From 535bdb20d444f708c648883a0059754f38d71290 Mon Sep 17 00:00:00 2001 From: csh Date: Mon, 28 Oct 2024 14:45:48 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E5=AE=8C=E5=96=84=E9=A1=B5=E7=A0=81?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E7=9A=84=E6=94=AF=E6=8C=81=202.=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8Dauto=E9=A2=9C=E8=89=B2=E6=8A=9B=E5=87=BA=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- range/Advanced/TSPdfParagraphRange.tsf | 2 +- range/basic/TSPdfRectangleRange.tsf | 3 ++- range/basic/TSPdfTextRange.tsf | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/range/Advanced/TSPdfParagraphRange.tsf b/range/Advanced/TSPdfParagraphRange.tsf index 219ff42..484045d 100644 --- a/range/Advanced/TSPdfParagraphRange.tsf +++ b/range/Advanced/TSPdfParagraphRange.tsf @@ -640,7 +640,7 @@ begin fld_struct.Quote := true; else if instr_text = "\\* MERGEFORMAT" then fld_struct.MergeFormat := true; - else if instr_text = "PAGE \\* Arabic \\* MERGEFORMAT" then + else if instr_text = "PAGE \\* Arabic \\* MERGEFORMAT" or instr_text = "PAGE \\* MERGEFORMAT" then fld_struct.PageArabicMergeFormat := true; else if instr_text = "NUMPAGES" then fld_struct.NumPages := true; diff --git a/range/basic/TSPdfRectangleRange.tsf b/range/basic/TSPdfRectangleRange.tsf index 54151a5..736405a 100644 --- a/range/basic/TSPdfRectangleRange.tsf +++ b/range/basic/TSPdfRectangleRange.tsf @@ -18,7 +18,8 @@ begin // println("page = {}, endx = {}, endy = {}, DynamicHeight = {}, Width = {}", {self.}Page, {self.}EndX, {self.}EndY, {self.}DynamicHeight, {self.}Width); if {self.}TcPr.Shd.Fill then begin - [r, g, b] := TSColorToolKit.HexToRGB({self.}TcPr.Shd.Fill); + [r, g, b] := array(0, 0, 0); + if {self.}TcPr.Shd.Fill <> "auto" then [r, g, b] := TSColorToolKit.HexToRGB({self.}TcPr.Shd.Fill); {self.}TSPage.PdfPage.SetRGBFill(r/255, g/255, b/255); {self.}TSPage.PdfPage.Rectangle({self.}EndX, {self.}EndY - {self.}DynamicHeight, {self.}Width, {self.}DynamicHeight); {self.}TSPage.PdfPage.Fill(); diff --git a/range/basic/TSPdfTextRange.tsf b/range/basic/TSPdfTextRange.tsf index ea0b74c..91552ba 100644 --- a/range/basic/TSPdfTextRange.tsf +++ b/range/basic/TSPdfTextRange.tsf @@ -21,9 +21,9 @@ end; function TSPdfTextRange.Do(); begin // println("text = {}, endx = {}, endy = {}, width = {}, page = {}", ansiToUtf8(text), endx, endy, width, page); - // println("Text = {}, sz = {}, szcs = {}, rpr.I = {}", ansiToUtf8({self.}Text), {self.}RPr.Sz.Val, {self.}RPr.SzCs.Val, {self.}RPr.I); + // println("Text = {}, sz = {}, szcs = {}, rpr.I = {}, color = {}", ansiToUtf8({self.}Text), {self.}RPr.Sz.Val, {self.}RPr.SzCs.Val, {self.}RPr.I, {self.}RPr.Color.Val); [r, g, b] := array(0, 0, 0); - if {self.}RPr.Color.Val then [r, g, b] := TSColorToolKit.HexToRGB({self.}RPr.Color.Val); + if {self.}RPr.Color.Val and {self.}RPr.Color.Val <> "auto" then [r, g, b] := TSColorToolKit.HexToRGB({self.}RPr.Color.Val); {self.}TSPage.PdfPage.SetRGBFill(r / 255, g / 255, b / 255); {self.}TSPage.PdfPage.SetFontAndSize({self.}Font, {self.}RPr.Sz.Val); {self.}TSPage.PdfPage.BeginText();