初步refactor xml公式
This commit is contained in:
parent
2e0aadd3d0
commit
600ce2e358
|
|
@ -278,7 +278,8 @@ begin
|
||||||
ftr_range.Parent := self;
|
ftr_range.Parent := self;
|
||||||
ftr_range.LowerBound := 0;
|
ftr_range.LowerBound := 0;
|
||||||
flag := ftr_range.Calc();
|
flag := ftr_range.Calc();
|
||||||
y_offset := current_page_.SectPr.PgSz.H - ftr_range.DynamicHeight - current_page_.SectPr.PgMar.Footer;
|
// y_offset := current_page_.SectPr.PgSz.H - ftr_range.DynamicHeight - current_page_.SectPr.PgMar.Footer;
|
||||||
|
y_offset := current_page_.SectPr.PgMar.Footer + ftr_range.DynamicHeight;
|
||||||
ftr_range.Offset(current_page_.SectPr.PgMar.Left, y_offset, current_page_);
|
ftr_range.Offset(current_page_.SectPr.PgMar.Left, y_offset, current_page_);
|
||||||
if flag then
|
if flag then
|
||||||
ftr_range.Do();
|
ftr_range.Do();
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -608,7 +608,9 @@ begin
|
||||||
i := 0;
|
i := 0;
|
||||||
while true do
|
while true do
|
||||||
begin
|
begin
|
||||||
y := {self.}TextPoint.Y - i * {self.}SectPr.DocGrid.LinePitch;
|
y := {self.}SectPr.PgSz.H - max({self.}SectPr.PgMar.Top, {self.}SectPr.PgMar.Header);
|
||||||
|
y := min(y, {self.}HdrPoint.Y);
|
||||||
|
y := y - i * {self.}SectPr.DocGrid.LinePitch;
|
||||||
if y <= {self.}SectPr.PgMar.Bottom then break;
|
if y <= {self.}SectPr.PgMar.Bottom then break;
|
||||||
pdf_page_.SetLineWidth(0.05);
|
pdf_page_.SetLineWidth(0.05);
|
||||||
pdf_page_.SetGrayStroke(0.75);
|
pdf_page_.SetGrayStroke(0.75);
|
||||||
|
|
@ -627,7 +629,7 @@ begin
|
||||||
x4 := x2;
|
x4 := x2;
|
||||||
y4 := y3;
|
y4 := y3;
|
||||||
pdf_page_.SetLineWidth(0.05);
|
pdf_page_.SetLineWidth(0.05);
|
||||||
pdf_page_.SetGrayStroke(0.5);
|
pdf_page_.SetGrayStroke(0.70);
|
||||||
pdf_page_.MoveTo(x1, y1);
|
pdf_page_.MoveTo(x1, y1);
|
||||||
pdf_page_.LineTo(x2, y2);
|
pdf_page_.LineTo(x2, y2);
|
||||||
pdf_page_.Stroke();
|
pdf_page_.Stroke();
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ public
|
||||||
function Create();
|
function Create();
|
||||||
function Do();virtual;
|
function Do();virtual;
|
||||||
function Offset(x: real; y: real; page: Page);virtual;
|
function Offset(x: real; y: real; page: Page);virtual;
|
||||||
|
function AdjustOffset(x: real; y: real);virtual;
|
||||||
|
|
||||||
public
|
public
|
||||||
[weakref]Parent: tslobj;
|
[weakref]Parent: tslobj;
|
||||||
|
|
@ -59,6 +60,7 @@ public
|
||||||
function Do();override;
|
function Do();override;
|
||||||
|
|
||||||
public
|
public
|
||||||
|
RPr: RPrUnitDecorator;
|
||||||
Image: PdfImage;
|
Image: PdfImage;
|
||||||
Type: string;
|
Type: string;
|
||||||
end;
|
end;
|
||||||
|
|
@ -98,6 +100,12 @@ begin
|
||||||
{self.}EndPage := page;
|
{self.}EndPage := page;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function BasicRange.AdjustOffset(x: real; y: real);virtual;
|
||||||
|
begin
|
||||||
|
{self.}XOffset += x;
|
||||||
|
{self.}YOffset += y;
|
||||||
|
end;
|
||||||
|
|
||||||
// ImageRange
|
// ImageRange
|
||||||
function ImageRange.Create();
|
function ImageRange.Create();
|
||||||
begin
|
begin
|
||||||
|
|
@ -108,6 +116,18 @@ end;
|
||||||
|
|
||||||
function ImageRange.Do();override;
|
function ImageRange.Do();override;
|
||||||
begin
|
begin
|
||||||
|
if {self.}RPr.Highlight.Val = "yellow" then
|
||||||
|
begin
|
||||||
|
{self.}EndPage.PdfPage.SetRGBFill(1, 1, 0);
|
||||||
|
x := {self.}EndX;
|
||||||
|
y := {self.}Parent.EndY;
|
||||||
|
w := {self.}Width;
|
||||||
|
h := {self.}Parent.DynamicHeight;
|
||||||
|
{self.}EndPage.PdfPage.Rectangle(x, y, w, h);
|
||||||
|
{self.}EndPage.PdfPage.Fill();
|
||||||
|
{self.}EndPage.PdfPage.SetRGBFill(0, 0, 0);
|
||||||
|
end
|
||||||
|
|
||||||
// println("image = {}, type = {}, x = {}, y = {}, w = {}, h = {}", {self.}image, {self.}Type, {self.}endx, {self.}endy, {self.}width, {self.}DynamicHeight);
|
// println("image = {}, type = {}, x = {}, y = {}, w = {}, h = {}", {self.}image, {self.}Type, {self.}endx, {self.}endy, {self.}width, {self.}DynamicHeight);
|
||||||
if {self.}Type = "emf" then
|
if {self.}Type = "emf" then
|
||||||
{self.}EndPage.PdfPage.DrawEmf({self.}Image, {self.}EndX, {self.}EndY, {self.}Width, {self.}DynamicHeight);
|
{self.}EndPage.PdfPage.DrawEmf({self.}Image, {self.}EndX, {self.}EndY, {self.}Width, {self.}DynamicHeight);
|
||||||
|
|
@ -140,7 +160,7 @@ function BordersRange.DoFill();
|
||||||
begin
|
begin
|
||||||
borders := {self.}TcPr.TcBorders;
|
borders := {self.}TcPr.TcBorders;
|
||||||
// println("TcPr.Shd.Val = {}", TcPr.Shd.Val);
|
// println("TcPr.Shd.Val = {}", TcPr.Shd.Val);
|
||||||
if {self.}TcPr.Shd.Val <> "clear" and {self.}TcPr.Shd.Fill and {self.}TcPr.Shd.Fill <> "auto" then
|
if {self.}TcPr.Shd.Val = "clear" and {self.}TcPr.Shd.Fill and {self.}TcPr.Shd.Fill <> "auto" then
|
||||||
begin
|
begin
|
||||||
[r, g, b] := DTPColorToolKit.HexToRGB({self.}TcPr.Shd.Fill);
|
[r, g, b] := DTPColorToolKit.HexToRGB({self.}TcPr.Shd.Fill);
|
||||||
{self.}EndPage.PdfPage.SetRGBFill(r/255, g/255, b/255);
|
{self.}EndPage.PdfPage.SetRGBFill(r/255, g/255, b/255);
|
||||||
|
|
@ -227,6 +247,17 @@ begin
|
||||||
y += sz / 3;
|
y += sz / 3;
|
||||||
sz := sz * 2 / 3;
|
sz := sz * 2 / 3;
|
||||||
end
|
end
|
||||||
|
if {self.}RPr.Highlight.Val = "yellow" then
|
||||||
|
begin
|
||||||
|
{self.}EndPage.PdfPage.SetRGBFill(1, 1, 0);
|
||||||
|
x := {self.}EndX;
|
||||||
|
y := {self.}Parent.EndY;
|
||||||
|
w := {self.}Width;
|
||||||
|
h := {self.}Parent.DynamicHeight;
|
||||||
|
{self.}EndPage.PdfPage.Rectangle(x, y, w, h);
|
||||||
|
{self.}EndPage.PdfPage.Fill();
|
||||||
|
{self.}EndPage.PdfPage.SetRGBFill(0, 0, 0);
|
||||||
|
end
|
||||||
{self.}EndPage.PdfPage.SetRGBFill(r / 255, g / 255, b / 255);
|
{self.}EndPage.PdfPage.SetRGBFill(r / 255, g / 255, b / 255);
|
||||||
{self.}EndPage.PdfPage.SetFontAndSize({self.}Font, sz);
|
{self.}EndPage.PdfPage.SetFontAndSize({self.}Font, sz);
|
||||||
{self.}EndPage.PdfPage.BeginText();
|
{self.}EndPage.PdfPage.BeginText();
|
||||||
|
|
@ -254,7 +285,7 @@ end;
|
||||||
|
|
||||||
function LineRange.Do();override;
|
function LineRange.Do();override;
|
||||||
begin
|
begin
|
||||||
// println("endx = {}, endy = {}, width = {}", EndX, EndY, Width);
|
// println("endx = {}, endy = {}, width = {}, line_width = {}", EndX, EndY, Width, LineWidth);
|
||||||
{self.}EndPage.PdfPage.SetLineWidth({self.}LineWidth);
|
{self.}EndPage.PdfPage.SetLineWidth({self.}LineWidth);
|
||||||
{self.}EndPage.PdfPage.SetRGBStroke(0, 0, 0);
|
{self.}EndPage.PdfPage.SetRGBStroke(0, 0, 0);
|
||||||
{self.}EndPage.PdfPage.MoveTo({self.}EndX, {self.}EndY);
|
{self.}EndPage.PdfPage.MoveTo({self.}EndX, {self.}EndY);
|
||||||
|
|
|
||||||
|
|
@ -185,18 +185,22 @@ begin
|
||||||
"β": chr(0x62),
|
"β": chr(0x62),
|
||||||
"ε": chr(0x65),
|
"ε": chr(0x65),
|
||||||
"γ": chr(0x67),
|
"γ": chr(0x67),
|
||||||
|
"π": chr(0x70),
|
||||||
"θ": chr(0x71),
|
"θ": chr(0x71),
|
||||||
"{": chr(0x7B),
|
"{": chr(0x7B),
|
||||||
"}": chr(0x7D),
|
"}": chr(0x7D),
|
||||||
"∞": chr(0xA5),
|
"∞": chr(0xA5),
|
||||||
"f": chr(0xA6),
|
"f": chr(0xA6),
|
||||||
"±": chr(0xB1),
|
"±": chr(0xB1),
|
||||||
|
"×": chr(0xB4),
|
||||||
"∂": chr(0xB6),
|
"∂": chr(0xB6),
|
||||||
"∏": chr(0xD5),
|
"∏": chr(0xD5),
|
||||||
"〈": chr(0xE1),
|
"〈": chr(0xE1),
|
||||||
"∑": chr(0xE5),
|
"∑": chr(0xE5),
|
||||||
|
"⌊": chr(0xEB),
|
||||||
"〉": chr(0xF1),
|
"〉": chr(0xF1),
|
||||||
"Į": chr(0xF2),
|
"Į": chr(0xF2),
|
||||||
|
"⌋": chr(0xFB),
|
||||||
// "": chr(0x),
|
// "": chr(0x),
|
||||||
);
|
);
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue