From bdbd201e444311443b807fc62df309dfe483b749 Mon Sep 17 00:00:00 2001 From: csh Date: Thu, 19 Dec 2024 10:31:20 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E4=BF=AE=E5=A4=8D=E6=AE=B5=E8=90=BD?= =?UTF-8?q?=E6=9C=89=E9=A6=96=E8=A1=8C=E9=97=B4=E8=B7=9D=EF=BC=8C=E5=B1=85?= =?UTF-8?q?=E4=B8=AD=E7=AE=97=E6=B3=95=E4=B8=8D=E5=AF=B9=E9=97=AE=E9=A2=98?= =?UTF-8?q?=202.=20=E4=BF=AE=E5=A4=8D=E6=AE=B5=E5=89=8D=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E5=A4=B1=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TSDocxToPdf.tsf | 21 --------------------- range/Advanced/TSPdfLineRange.tsf | 2 +- range/Advanced/TSPdfParagraphRange.tsf | 7 +++++-- range/Advanced/TSPdfTableRange.tsf | 5 ++--- 4 files changed, 8 insertions(+), 27 deletions(-) diff --git a/TSDocxToPdf.tsf b/TSDocxToPdf.tsf index 26b8372..95acd50 100644 --- a/TSDocxToPdf.tsf +++ b/TSDocxToPdf.tsf @@ -15,8 +15,6 @@ public function GetNextPage(page: TSPage): TSPage; function GetCurrentXmlFile(): string; - function AddTSPageWare(flag: boolean): TSPage; - function AddTSPage(flag: boolean): TSPage; function LinkToToc(anchor: string; page: TSPage; left: real; top: real); function AddToc(anchor: string; toc: TSToc); @@ -25,7 +23,6 @@ public function CalculateTextCoordinates(): array of real; function GetSymbol(symbol: string); function AddDocxPage(pg: TSPage; r: R); - function CalcParams(): real; function AddColIndex(); function UpdateDocxPageNumpages(); @@ -130,24 +127,6 @@ begin return pdf_.SaveToFile(alias, file); end; -function TSDocxToPdf.CalcParams(): real; -begin - cols := current_sect_ware_.SectPr.Cols.Cols(); - // println("cols = {}", cols); - w := 0; - if cols then - begin - for i:=0 to col_index_ do - begin - w := cols[i].W; - if i > 0 then text_point_.X += (cols[i-1].W + cols[i-1].Space); - end - end - else - w := current_sect_ware_.SectPr.PgSz.W - current_sect_ware_.SectPr.PgMar.Right - current_sect_ware_.SectPr.PgMar.Left; - return w; -end; - function TSDocxToPdf.Transform(); begin for _,sect_ware in sect_ware_array_ do diff --git a/range/Advanced/TSPdfLineRange.tsf b/range/Advanced/TSPdfLineRange.tsf index c646980..af47d50 100644 --- a/range/Advanced/TSPdfLineRange.tsf +++ b/range/Advanced/TSPdfLineRange.tsf @@ -52,7 +52,7 @@ begin last := range_array_[length(range_array_)-1]; case jc of "center": - offset := ({self.}Width - last.EndX + first.EndX - last.Width) / 2; + offset := ({self.}Width + StartX - last.EndX - last.Width) / 2; "right": offset := {self.}Width - last.EndX + first.EndX - last.Width; end; diff --git a/range/Advanced/TSPdfParagraphRange.tsf b/range/Advanced/TSPdfParagraphRange.tsf index cc7fddd..81de77f 100644 --- a/range/Advanced/TSPdfParagraphRange.tsf +++ b/range/Advanced/TSPdfParagraphRange.tsf @@ -147,10 +147,10 @@ begin if ifnil(paragraph_.XmlChildPPr) then paragraph_.XmlChildPPr := new PPr(); {self.}SetPPr(paragraph_.PPr); ppr_unit_decorator_ := new PPrUnitDecorator(paragraph_.PPr); + {self.}Init(); if not ppr_unit_decorator_.RPr.Sz.Val then ppr_unit_decorator_.RPr.Sz.Val := docx_to_pdf_.Font.GetDefaultSz(); if paragraph_.PPr.PageBreakBefore then {self.}CheckAndAddPage({self.}LowerBound, 1); - {self.}Init(); elements := paragraph_.Elements(); empty_flag := true; @@ -826,7 +826,10 @@ begin end else begin lines := roundto(line / 240, -1); - multi := ceil(size / sect_ware.BaseSize) * lines; + multi := ceil(size / sect_ware.BaseSize); + if (not ifnil(ppr_unit_decorator_.SnapToGrid) and not ppr_unit_decorator_.SnapToGrid) or + ((ifnil(ppr_unit_decorator_.SnapToGrid) or ppr_unit_decorator_.SnapToGrid) and lines > multi) then + multi *= lines; return sect_ware.SectPr.DocGrid.LinePitch * multi; end end; diff --git a/range/Advanced/TSPdfTableRange.tsf b/range/Advanced/TSPdfTableRange.tsf index 481a843..b25561e 100644 --- a/range/Advanced/TSPdfTableRange.tsf +++ b/range/Advanced/TSPdfTableRange.tsf @@ -49,9 +49,8 @@ function TSPdfTableRange.Calc(); begin {self.}SetTblTblPr(table_); tbl_pr_unit_decorator_ := new TblPrUnitDecorator(table_.TblPr); - grid_cols := table_.TblGrid.GridCols(); - for i:=0 to length(grid_cols)-1 do - grid_cols[i] := new GridColUnitDecorator(grid_cols[i]); + tbl_grid_unit_decorator := new TblGridUnitDecorator(table_.TblGrid); + grid_cols := tbl_grid_unit_decorator.GridCols(); {self.}ResetCoordinates(tbl_pr_unit_decorator_, grid_cols); {self.}EndX := {self.}StartX; {self.}EndY := {self.}StartY;