range.font and range.border

This commit is contained in:
csh
2023-11-17 16:56:00 +08:00
parent 7283b7ac28
commit 3781bc96e7
32 changed files with 5752 additions and 543 deletions
+732
View File
@@ -0,0 +1,732 @@
Type TSDocxFont = Class(TSVbaBase)
Uses TSDocxEnumerations;
public
Function Init(pr);
protected
pr_;
color_index_;
color_;
public
Function Grow();virtual;
Function Reset();virtual;
Function SetAsTemplateDefault();virtual;
Function Shrink();virtual;
property AllCaps read ReadAllCaps write WriteAllCaps;
property Bold read ReadBold write WriteBold;
property BoldBi read ReadBoldBi write WriteBoldBi;
property Borders read ReadBorders;
property ColorIndex read ReadColorIndex write WriteColorIndex;
property ColorIndexBi read ReadColorIndexBi write WriteColorIndexBi;
property ContextualAlternates read ReadContextualAlternates write WriteContextualAlternates;
property DiacriticColor read ReadDiacriticColor write WriteDiacriticColor;
property DisableCharacterSpaceGrid read ReadDisableCharacterSpaceGrid write WriteDisableCharacterSpaceGrid;
property DoubleStrikeThrough read ReadDoubleStrikeThrough write WriteDoubleStrikeThrough;
property Duplicate read ReadDuplicate;
property Emboss read ReadEmboss write WriteEmboss;
property EmphasisMark read ReadEmphasisMark write WriteEmphasisMark;
property Engrave read ReadEngrave write WriteEngrave;
property Fill read ReadFill;
property Glow read ReadGlow;
property Hidden read ReadHidden write WriteHidden;
property Italic read ReadItalic write WriteItalic;
property ItalicBi read ReadItalicBi write WriteItalicBi;
property Kerning read ReadKerning write WriteKerning;
property Ligatures read ReadLigatures write WriteLigatures;
property Line read ReadLine write WriteLine;
property Name read ReadName write WriteName;
property NameAscii read ReadNameAscii write WriteNameAscii;
property NameBi read ReadNameBi write WriteNameBi;
property NameFarEast read ReadNameFarEast write WriteNameFarEast;
property NameOther read ReadNameOther write WriteNameOther;
property NumberForm read ReadNumberForm write WriteNumberForm;
property NumberSpacing read ReadNumberSpacing write WriteNumberSpacing;
property Outline read ReadOutline write WriteOutline;
property Position read ReadPosition write WritePosition;
property Reflection read ReadReflection;
property Scaling read ReadScaling write WriteScaling;
property Shading read ReadShading;
property Shadow read ReadShadow write WriteShadow;
property Size read ReadSize write WriteSize;
property SizeBi read ReadSizeBi write WriteSizeBi;
property SmallCaps read ReadSmallCaps write WriteSmallCaps;
property Spacing read ReadSpacing write WriteSpacing;
property StrikeThrough read ReadStrikeThrough write WriteStrikeThrough;
property StylisticSet read ReadStylisticSet write WriteStylisticSet;
property Subscript read ReadSubscript write WriteSubscript;
property Superscript read ReadSuperscript write WriteSuperscript;
property TextColor read ReadTextColor;
property TextShadow read ReadTextShadow;
property ThreeD read ReadThreeD;
property Underline read ReadUnderline write WriteUnderline;
property UnderlineColor read ReadUnderlineColor write WriteUnderlineColor;
Function WriteUnderlineColor(value);virtual;
Function ReadUnderlineColor();virtual;
Function WriteUnderline(value);virtual;
Function ReadUnderline();virtual;
Function ReadThreeD();virtual;
Function ReadTextShadow();virtual;
Function ReadTextColor();virtual;
Function WriteSuperscript(value);virtual;
Function ReadSuperscript();virtual;
Function WriteSubscript(value);virtual;
Function ReadSubscript();virtual;
Function WriteStylisticSet(value);virtual;
Function ReadStylisticSet();virtual;
Function WriteStrikeThrough(value);virtual;
Function ReadStrikeThrough();virtual;
Function WriteSpacing(value);virtual;
Function ReadSpacing();virtual;
Function WriteSmallCaps(value);virtual;
Function ReadSmallCaps();virtual;
Function WriteSizeBi(value);virtual;
Function ReadSizeBi();virtual;
Function WriteSize(value);virtual;
Function ReadSize();virtual;
Function WriteShadow(value);virtual;
Function ReadShadow();virtual;
Function ReadShading();virtual;
Function WriteScaling(value);virtual;
Function ReadScaling();virtual;
Function ReadReflection();virtual;
Function WritePosition(value);virtual;
Function ReadPosition();virtual;
Function WriteOutline(value);virtual;
Function ReadOutline();virtual;
Function WriteNumberSpacing(value);virtual;
Function ReadNumberSpacing();virtual;
Function WriteNumberForm(value);virtual;
Function ReadNumberForm();virtual;
Function WriteNameOther(value);virtual;
Function ReadNameOther();virtual;
Function WriteNameFarEast(value);virtual;
Function ReadNameFarEast();virtual;
Function WriteNameBi(value);virtual;
Function ReadNameBi();virtual;
Function WriteNameAscii(value);virtual;
Function ReadNameAscii();virtual;
Function WriteName(value);virtual;
Function ReadName();virtual;
Function WriteLine(value);virtual;
Function ReadLine();virtual;
Function WriteLigatures(value);virtual;
Function ReadLigatures();virtual;
Function WriteKerning(value);virtual;
Function ReadKerning();virtual;
Function WriteItalicBi(value);virtual;
Function ReadItalicBi();virtual;
Function WriteItalic(value);virtual;
Function ReadItalic();virtual;
Function WriteHidden(value);virtual;
Function ReadHidden();virtual;
Function ReadGlow();virtual;
Function ReadFill();virtual;
Function WriteEngrave(value);virtual;
Function ReadEngrave();virtual;
Function WriteEmphasisMark(value);virtual;
Function ReadEmphasisMark();virtual;
Function WriteEmboss(value);virtual;
Function ReadEmboss();virtual;
Function ReadDuplicate();virtual;
Function WriteDoubleStrikeThrough(value);virtual;
Function ReadDoubleStrikeThrough();virtual;
Function WriteDisableCharacterSpaceGrid(value);virtual;
Function ReadDisableCharacterSpaceGrid();virtual;
Function WriteDiacriticColor(value);virtual;
Function ReadDiacriticColor();virtual;
Function WriteContextualAlternates(value);virtual;
Function ReadContextualAlternates();virtual;
Function WriteColorIndexBi(value);virtual;
Function ReadColorIndexBi();virtual;
Function WriteColorIndex(value);virtual;
Function ReadColorIndex();virtual;
Function ReadBorders();virtual;
Function WriteBoldBi(value);virtual;
Function ReadBoldBi();virtual;
Function WriteBold(value);virtual;
Function ReadBold();virtual;
Function WriteAllCaps(value);virtual;
Function ReadAllCaps();virtual;
End;
// ============== 实现 ================= //
Function TSDocxFont.Init(pr);
Begin
pr_ := pr;
color_index_ := TSWdColorIndex();
color_ := TSWdColor();
End;
// function
Function TSDocxFont.Reset();virtual;
Begin
pr_.Delete();
End;
// property
Function TSDocxFont.WriteAllCaps(value);virtual;
Begin
pr_.Caps := value = TSDocxEnumerations.wdToggle() ? _Not(self.Caps) : value;
pr_.Update("first");
End;
Function TSDocxFont.ReadAllCaps();virtual;
Begin
return pr_.Value("Caps");
End;
Function TSDocxFont.WriteBold(value);virtual;
Begin
pr_.Bold := value = TSDocxEnumerations.wdToggle() ? _Not(self.Bold) : value;
pr_.Update("first");
End;
Function TSDocxFont.ReadBold();virtual;
Begin
return pr_.Value("Bold");
End;
Function TSDocxFont.WriteBoldBi(value);virtual;
Begin
pr_.BoldBi := value = TSDocxEnumerations.wdToggle() ? _Not(self.BoldBi) : value;
pr_.Update("first");
End;
Function TSDocxFont.ReadBoldBi();virtual;
Begin
return pr_.Value("bCs");
End;
Function TSDocxFont.WriteColorIndex(value);virtual;
Begin
color := color_index_[value];
if ifnil(color) then pr_.Root().DeleteChild("w:color");
else begin
pr_.Color := color;
pr_.Update("first");
end
End;
Function TSDocxFont.ReadColorIndex();virtual;
Begin
return color_index_[pr_.Value("Color")];
End;
Function TSDocxFont.WriteColorIndexBi(value);virtual;
Begin
self.ColorIndex := value;
End;
Function TSDocxFont.ReadColorIndexBi();virtual;
Begin
return self.ColorIndex;
End;
Function TSDocxFont.WriteContextualAlternates(value);virtual;
Begin
pr_.ContextualAlternates := value;
pr_.Update("first");
End;
Function TSDocxFont.ReadContextualAlternates();virtual;
Begin
return pr_.Value("ContextualAlternates");
End;
Function TSDocxFont.WriteDisableCharacterSpaceGrid(value);virtual;
Begin
pr_.SnapToGrid := value ? false : true;
pr_.Update("first");
End;
Function TSDocxFont.ReadDisableCharacterSpaceGrid();virtual;
Begin
return pr_.Value("SnapToGrid") ? false : true;
End;
Function TSDocxFont.WriteDoubleStrikeThrough(value);virtual;
Begin
pr_.dStrike := value;
pr_.Update("first");
End;
Function TSDocxFont.ReadDoubleStrikeThrough();virtual;
Begin
return pr_.Value("dStrike");
End;
Function TSDocxFont.ReadDuplicate();virtual;
Begin
pr := pr_;
return pr;
End;
Function TSDocxFont.WriteEmboss(value);override;
Begin
pr_.Emboss := value;
pr_.Update("first");
End;
Function TSDocxFont.ReadEmboss();override;
Begin
return pr_.Value("Emboss");
End;
Function TSDocxFont.WriteEmphasisMark(value);virtual;
Begin
case value of
TSDocxEnumerations.wdEmphasisMarkNone:
pr_.Em := "none";
TSDocxEnumerations.wdEmphasisMarkOverComma:
pr_.Em := "comma";
TSDocxEnumerations.wdEmphasisMarkOverSolidCircle:
pr_.Em := "dot";
TSDocxEnumerations.wdEmphasisMarkOverWhiteCircle:
pr_.Em := "circle";
TSDocxEnumerations.wdEmphasisMarkUnderSolidCircle:
pr_.Em := "underDot";
end;
pr_.Update("first");
End;
Function TSDocxFont.ReadEmphasisMark();virtual;
Begin
case pr_.Value("first") of
"none":
return TSDocxEnumerations.wdEmphasisMarkNone;
"comma":
return TSDocxEnumerations.wdEmphasisMarkOverComma;
"dot":
return TSDocxEnumerations.wdEmphasisMarkOverSolidCircle;
"circle":
return TSDocxEnumerations.wdEmphasisMarkOverWhiteCircle;
"underDot":
return TSDocxEnumerations.wdEmphasisMarkUnderSolidCircle;
end;
End;
Function TSDocxFont.WriteEngrave(value);virtual;
Begin
pr_.ImPrint := value;
pr_.Update("first");
End;
Function TSDocxFont.ReadEngrave();virtual;
Begin
return pr_.Value("ImPrint");
End;
Function TSDocxFont.WriteHidden(value);virtual;
Begin
pr_.Vanish := value;
pr_.Update("first");
End;
Function TSDocxFont.ReadHidden();virtual;
Begin
return pr_.Value("Vanish");
End;
Function TSDocxFont.WriteItalic(value);virtual;
Begin
pr_.Italic := value;
pr_.Update("first");
End;
Function TSDocxFont.ReadItalic();virtual;
Begin
return pr_.Value("Italic");
End;
Function TSDocxFont.WriteItalicBi(value);virtual;
Begin
pr_.ICs := value;
pr_.Update("first");
End;
Function TSDocxFont.ReadItalicBi();virtual;
Begin
return pr_.Value("ICs");
End;
Function TSDocxFont.WriteKerning(value);virtual;
Begin
pr_.Kern := value * 2;
pr_.Update("first");
End;
Function TSDocxFont.ReadKerning();virtual;
Begin
return pr_.Value("Kern") / 2;
End;
Function TSDocxFont.WriteLigatures(value);virtual;
Begin
case value of
TSDocxEnumerations.wdLigaturesAll():
pr_.Ligatures := "all";
TSDocxEnumerations.wdLigaturesContextual():
pr_.Ligatures := "contextual";
TSDocxEnumerations.wdLigaturesContextualDiscretional():
pr_.Ligatures := "contextualDiscretional";
TSDocxEnumerations.wdLigaturesContextualHistorical():
pr_.Ligatures := "contextualHistorical";
TSDocxEnumerations.wdLigaturesContextualHistoricalDiscretional():
pr_.Ligatures := "contextualHistoricalDiscretional";
TSDocxEnumerations.wdLigaturesDiscretional():
pr_.Ligatures := "discretional";
TSDocxEnumerations.wdLigaturesHistorical():
pr_.Ligatures := "historical";
TSDocxEnumerations.wdLigaturesHistoricalDiscretional():
pr_.Ligatures := "historicalDiscretional";
TSDocxEnumerations.wdLigaturesNone():
pr_.Ligatures := "none";
TSDocxEnumerations.wdLigaturesStandard():
pr_.Ligatures := "standard";
TSDocxEnumerations.wdLigaturesStandardContextual():
pr_.Ligatures := "standardContextual";
TSDocxEnumerations.wdLigaturesStandardContextualDiscretional():
pr_.Ligatures := "standardContextualDiscretional";
TSDocxEnumerations.wdLigaturesStandardContextualHistorical():
pr_.Ligatures := "standardContextualHistorical";
TSDocxEnumerations.wdLigaturesStandardDiscretional():
pr_.Ligatures := "standardDiscretional";
TSDocxEnumerations.wdLigaturesStandardHistorical():
pr_.Ligatures := "standardHistorical";
TSDocxEnumerations.wdLigaturesStandardHistoricalDiscretional():
pr_.Ligatures := "standardHistoricalDiscretional";
end;
pr_.Update("first");
End;
Function TSDocxFont.ReadLigatures();virtual;
Begin
case pr_.Value("Ligatures") of
"all":
return TSDocxEnumerations.wdLigaturesAll();
"contextual":
return TSDocxEnumerations.wdLigaturesContextual();
"contextualDiscretional":
return TSDocxEnumerations.wdLigaturesContextualDiscretional();
"contextualHistorical":
return TSDocxEnumerations.wdLigaturesContextualHistorical();
"contextualHistoricalDiscretional":
return TSDocxEnumerations.wdLigaturesContextualHistoricalDiscretional();
"discretional":
return TSDocxEnumerations.wdLigaturesDiscretional();
"historical":
return TSDocxEnumerations.wdLigaturesHistorical();
"historicalDiscretional":
return TSDocxEnumerations.wdLigaturesHistoricalDiscretional();
"none", nil:
return TSDocxEnumerations.wdLigaturesNone();
"standard":
return TSDocxEnumerations.wdLigaturesStandard();
"standardContextual":
return TSDocxEnumerations.wdLigaturesStandardContextual();
"standardContextualDiscretional":
return TSDocxEnumerations.wdLigaturesStandardContextualDiscretional();
"standardContextualHistorical":
return TSDocxEnumerations.wdLigaturesStandardContextualHistorical();
"standardDiscretional":
return TSDocxEnumerations.wdLigaturesStandardDiscretional();
"standardHistorical":
return TSDocxEnumerations.wdLigaturesStandardHistorical();
"standardHistoricalDiscretional":
return TSDocxEnumerations.wdLigaturesStandardHistoricalDiscretional();
end;
End;
Function TSDocxFont.WriteName(value);virtual;
Begin
pr_.rFont.EastAsia := value;
pr_.rFont.Ascii := value;
pr_.Update("first");
End;
Function TSDocxFont.ReadName();virtual;
Begin
return pr_.rFont.Value("EastAsia");
End;
Function TSDocxFont.WriteNameAscii(value);virtual;
Begin
pr_.rFont.Ascii := value;
pr_.Update("first");
End;
Function TSDocxFont.ReadNameAscii();virtual;
Begin
return pr_.rFont.Value("Ascii");
End;
Function TSDocxFont.WriteNameBi(value);virtual;
Begin
pr_.rFont.Cs := value;
pr_.Update("first");
End;
Function TSDocxFont.ReadNameBi();virtual;
Begin
return pr_.rFont.Value("Cs");
End;
Function TSDocxFont.WriteNameFarEast(value);virtual;
Begin
pr_.rFont.EastAsia := value;
pr_.Update("first");
End;
Function TSDocxFont.ReadNameFarEast();virtual;
Begin
ret := pr_.rFont.Value("EastAsia");
return ret ? ret : "宋体";
End;
Function TSDocxFont.WriteNameOther(value);virtual;
Begin
pr_.rFont.HAnsi := value;
pr_.Update("first");
End;
Function TSDocxFont.ReadNameOther();virtual;
Begin
return pr_.rFont.Value("HAnsi");
End;
Function TSDocxFont.WriteNumberForm(value);virtual;
Begin
case value of
TSDocxEnumerations.wdNumberFormDefault():
pr_.NumForm := "default";
TSDocxEnumerations.wdNumberFormLining():
pr_.NumForm := "lining";
TSDocxEnumerations.wdNumberFormOldstyle():
pr_.NumForm := "oldStyle";
end;
pr_.Update("first");
End;
Function TSDocxFont.ReadNumberForm();virtual;
Begin
case pr_.Value("NumForm") of
"default", nil:
return TSDocxEnumerations.wdNumberFormDefault();
"lining":
return TSDocxEnumerations.wdNumberFormLining();
"oldStyle":
return TSDocxEnumerations.wdNumberFormOldstyle();
end;
End;
Function TSDocxFont.WriteNumberSpacing(value);virtual;
Begin
case value of
TSDocxEnumerations.wdNumberSpacingDefault():
pr_.NumSpacing := "default";
TSDocxEnumerations.wdNumberSpacingProportional():
pr_.NumSpacing := "proportional";
TSDocxEnumerations.wdNumberSpacingTabular():
pr_.NumSpacing := "tabular";
end;
pr_.Update("first");
End;
Function TSDocxFont.ReadNumberSpacing();virtual;
Begin
case pr_.Value("NumSpacing") of
"default", nil:
return TSDocxEnumerations.wdNumberSpacingDefault();
"proportional":
return TSDocxEnumerations.wdNumberSpacingProportional();
"tabular":
return TSDocxEnumerations.wdNumberSpacingTabular();
end;
End;
Function TSDocxFont.WriteOutline(value);virtual;
Begin
pr_.Outline := value = TSDocxEnumerations.wdToggle() ? _Not(self.Outline) : value;
pr_.Update("first");
End;
Function TSDocxFont.ReadOutline();virtual;
Begin
return pr_.Value("Outline");
End;
Function TSDocxFont.WritePosition(value);virtual;
Begin
pr_.Position := value * 2;
pr_.Update("first");
End;
Function TSDocxFont.ReadPosition();virtual;
Begin
return pr_.Value("Position ") / 2;
End;
Function TSDocxFont.WriteScaling(value);virtual;
Begin
pr_.W := value;
pr_.Update("first");
End;
Function TSDocxFont.ReadScaling();virtual;
Begin
return pr_.Value("W");
End;
Function TSDocxFont.WriteShadow(value);virtual;
Begin
pr_.Shadow := value;
pr_.Update("first");
End;
Function TSDocxFont.ReadShadow();virtual;
Begin
return pr_.Value("Shadow");
End;
Function TSDocxFont.WriteSize(value);virtual;
Begin
pr_.Sz := value * 2;
pr_.Update("first");
End;
Function TSDocxFont.ReadSize();virtual;
Begin
return pr_.Value("Sz") / 2;
End;
Function TSDocxFont.WriteSizeBi(value);virtual;
Begin
pr_.SzCs := value * 2;
pr_.Update("first");
End;
Function TSDocxFont.ReadSizeBi();virtual;
Begin
return pr_.Value("SzCs") / 2;
End;
Function TSDocxFont.WriteSmallCaps(value);virtual;
Begin
pr_.SmallCaps := value = TSDocxEnumerations.wdToggle() ? _Not(self.SmallCaps) : value;
pr_.Update("first");
End;
Function TSDocxFont.ReadSmallCaps();virtual;
Begin
return pr_.Value("SmallCaps");
End;
Function TSDocxFont.WriteSpacing(value);virtual;
Begin
pr_.Spacing := value * 20;
pr_.Update("first");
End;
Function TSDocxFont.ReadSpacing();virtual;
Begin
return pr_.Value("Spacing") / 20;
End;
Function TSDocxFont.WriteStrikeThrough(value);virtual;
Begin
pr_.Strike := value;
pr_.Update("first");
End;
Function TSDocxFont.ReadStrikeThrough();virtual;
Begin
return pr_.Value("Strike");
End;
Function TSDocxFont.WriteSubscript(value);virtual;
Begin
pr_.VertAlign := "subscript";
pr_.Update("first");
End;
Function TSDocxFont.ReadSubscript();virtual;
Begin
return pr_.Value("VertAlign");
End;
Function TSDocxFont.WriteSuperscript(value);virtual;
Begin
pr_.VertAlign := "supercript";
pr_.Update("first");
End;
Function TSDocxFont.ReadSuperscript();virtual;
Begin
return pr_.Value("VertAlign");
End;
Function TSDocxFont.WriteUnderline(value);virtual;
Begin
case value of
TSDocxEnumerations.wdUnderlineDash():
pr_.U := "dash";
TSDocxEnumerations.wdUnderlineDashHeavy():
pr_.U := "dashedHeavy";
TSDocxEnumerations.wdUnderlineDashLong():
pr_.U := "dashLong";
TSDocxEnumerations.wdUnderlineDashLongHeavy():
pr_.U := "dashLongHeavy";
TSDocxEnumerations.wdUnderlineDotDash():
pr_.U := "dotDash";
TSDocxEnumerations.wdUnderlineDotDashHeavy():
pr_.U := "dashDotHeavy";
TSDocxEnumerations.wdUnderlineDotDotDash():
pr_.U := "dotDotDash";
TSDocxEnumerations.wdUnderlineDotDotDashHeavy():
pr_.U := "dashDotDotHeavy";
TSDocxEnumerations.wdUnderlineDotted():
pr_.U := "dotted";
TSDocxEnumerations.wdUnderlineDottedHeavy():
pr_.U := "dottedHeavy";
TSDocxEnumerations.wdUnderlineDouble():
pr_.U := "double";
TSDocxEnumerations.wdUnderlineNone():
pr_.U := "none";
TSDocxEnumerations.wdUnderlineSingle():
pr_.U := "single";
TSDocxEnumerations.wdUnderlineThick():
pr_.U := "thick";
TSDocxEnumerations.wdUnderlineWavy():
pr_.U := "wave";
TSDocxEnumerations.wdUnderlineWavyDouble():
pr_.U := "wavyDoule";
TSDocxEnumerations.wdUnderlineWavyHeavy():
pr_.U := "wavyHeavy";
TSDocxEnumerations.wdUnderlineWords():
pr_.U := "words";
end;
pr_.Update("first");
End;
Function TSDocxFont.ReadUnderline();virtual;
Begin
case pr_.Value("U") of
"dash":
return TSDocxEnumerations.wdUnderlineDash();
"dashedHeavy":
return TSDocxEnumerations.wdUnderlineDashHeavy();
"dashLong":
return TSDocxEnumerations.wdUnderlineDashLong();
"dashLongHeavy":
return TSDocxEnumerations.wdUnderlineDashLongHeavy();
"dotDash":
return TSDocxEnumerations.wdUnderlineDotDash();
"dashDotHeavy":
return TSDocxEnumerations.wdUnderlineDotDashHeavy();
"dotDotDash":
return TSDocxEnumerations.wdUnderlineDotDotDash();
"dashDotDotHeavy":
return TSDocxEnumerations.wdUnderlineDotDotDashHeavy();
"dotted":
return TSDocxEnumerations.wdUnderlineDotted();
"dottedHeavy":
return TSDocxEnumerations.wdUnderlineDottedHeavy();
"double":
return TSDocxEnumerations.wdUnderlineDouble();
"none", nil:
return TSDocxEnumerations.wdUnderlineNone();
"single":
return TSDocxEnumerations.wdUnderlineSingle();
"thick":
return TSDocxEnumerations.wdUnderlineThick();
"wave":
return TSDocxEnumerations.wdUnderlineWavy();
"wavyDoule":
return TSDocxEnumerations.wdUnderlineWavyDouble();
"wavyHeavy":
return TSDocxEnumerations.wdUnderlineWavyHeavy();
"words":
return TSDocxEnumerations.wdUnderlineWords();
end;
End;
Function TSDocxFont.WriteUnderlineColor(value);virtual;
Begin
pr_.UColor := color_[value];
pr_.Update("first");
End;
Function TSDocxFont.ReadUnderlineColor();virtual;
Begin
return color_[pr_.Value("UColor")];
End;
+551
View File
@@ -0,0 +1,551 @@
Type TSDocxFontRange = Class(TSDocxFont)
Uses TSDocxEnumerations;
public
Function Init(arr);
private
Function CallFunction(pf, value);overload;
Function CallFunction(pf);overload;
Function SplitRun();
private
range_arr_;
split_flag_; // 写之前切割run,切割后设为true
public
Function Reset();override;
Function WriteUnderlineColor(value);override;
Function ReadUnderlineColor();override;
Function WriteUnderline(value);override;
Function ReadUnderline();override;
Function ReadThreeD();override;
Function ReadTextShadow();override;
Function ReadTextColor();override;
Function WriteSuperscript(value);override;
Function ReadSuperscript();override;
Function WriteSubscript(value);override;
Function ReadSubscript();override;
Function WriteStylisticSet(value);override;
Function ReadStylisticSet();override;
Function WriteStrikeThrough(value);override;
Function ReadStrikeThrough();override;
Function WriteSpacing(value);override;
Function ReadSpacing();override;
Function WriteSmallCaps(value);override;
Function ReadSmallCaps();override;
Function WriteSizeBi(value);override;
Function ReadSizeBi();override;
Function WriteSize(value);override;
Function ReadSize();override;
Function WriteShadow(value);override;
Function ReadShadow();override;
Function ReadShading();override;
Function WriteScaling(value);override;
Function ReadScaling();override;
Function ReadReflection();override;
Function WritePosition(value);override;
Function ReadPosition();override;
Function WriteOutline(value);override;
Function ReadOutline();override;
Function WriteNumberSpacing(value);override;
Function ReadNumberSpacing();override;
Function WriteNumberForm(value);override;
Function ReadNumberForm();override;
Function WriteNameOther(value);override;
Function ReadNameOther();override;
Function WriteNameFarEast(value);override;
Function ReadNameFarEast();override;
Function WriteNameBi(value);override;
Function ReadNameBi();override;
Function WriteNameAscii(value);override;
Function ReadNameAscii();override;
Function WriteName(value);override;
Function ReadName();override;
Function WriteLine(value);override;
Function ReadLine();override;
Function WriteLigatures(value);override;
Function ReadLigatures();override;
Function WriteKerning(value);override;
Function ReadKerning();override;
Function WriteItalicBi(value);override;
Function ReadItalicBi();override;
Function WriteItalic(value);override;
Function ReadItalic();override;
Function WriteHidden(value);override;
Function ReadHidden();override;
Function ReadGlow();override;
Function ReadFill();override;
Function WriteEngrave(value);override;
Function ReadEngrave();override;
Function WriteEmphasisMark(value);override;
Function ReadEmphasisMark();override;
Function WriteEmboss(value);override;
Function ReadEmboss();override;
Function ReadDuplicate();override;
Function WriteDoubleStrikeThrough(value);override;
Function ReadDoubleStrikeThrough();override;
Function WriteDisableCharacterSpaceGrid(value);override;
Function ReadDisableCharacterSpaceGrid();override;
Function WriteDiacriticColor(value);override;
Function ReadDiacriticColor();override;
Function WriteContextualAlternates(value);override;
Function ReadContextualAlternates();override;
Function WriteColorIndexBi(value);override;
Function ReadColorIndexBi();override;
Function WriteColorIndex(value);override;
Function ReadColorIndex();override;
Function ReadBorders();override;
Function WriteBoldBi(value);override;
Function ReadBoldBi();override;
Function WriteBold(value);override;
Function ReadBold();override;
Function WriteAllCaps(value);override;
Function ReadAllCaps();override;
End;
// ============== 实现 ================= //
Function TSDocxFontRange.Init(arr);
Begin
range_arr_ := arr;
split_flag_ := false;
class(TSDocxFont).Init(nil);
End;
Function TSDocxFontRange.SplitRun();
Begin
if split_flag_ then return;
class(TSWdCommon).SplitRangeRun(range_arr_);
self.Parent.SetRangeArr(range_arr_);
split_flag_ := true;
End;
Function TSDocxFontRange.CallFunction(pf, value);overload;
Begin
SplitRun();
for i:=0 to length(range_arr_)-1 do
begin
paragraph := range_arr_[i]["tparagraph"];
pr_ := paragraph.pPr.rPr;
##pf(value);
for i:=0 to length(range_arr_)-1 do
begin
pr_ := range_arr_[i]["trun"].rPr;
##pf(value);
end
end;
End;
Function TSDocxFontRange.CallFunction(pf);overload;
Begin
ret := nil;
for i:=0 to length(range_arr_)-1 do
begin
pr_ := range_arr_[i]["trun"].rPr;
if not ifObj(pr_.Root()) then continue;
cur := ##pf();
if ifnil(ret) then ret := cur;
if ret <> cur then return TSDocxEnumerations.wdUndefined();
end
return ret;
End;
// function
Function TSDocxFontRange.Reset();override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).Reset));
End;
// property
Function TSDocxFontRange.WriteUnderlineColor(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteUnderlineColor), value);
End;
Function TSDocxFontRange.ReadUnderlineColor();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadUnderlineColor));
End;
Function TSDocxFontRange.WriteUnderline(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteUnderline), value);
End;
Function TSDocxFontRange.ReadUnderline();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadUnderline));
End;
Function TSDocxFontRange.ReadThreeD();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadThreeD));
End;
Function TSDocxFontRange.ReadTextShadow();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadTextShadow));
End;
Function TSDocxFontRange.ReadTextColor();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadTextColor));
End;
Function TSDocxFontRange.WriteSuperscript(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteSuperscript), value);
End;
Function TSDocxFontRange.ReadSuperscript();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadSuperscript));
End;
Function TSDocxFontRange.WriteSubscript(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteSubscript), value);
End;
Function TSDocxFontRange.ReadSubscript();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadSubscript));
End;
Function TSDocxFontRange.WriteStylisticSet(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteStylisticSet), value);
End;
Function TSDocxFontRange.ReadStylisticSet();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadStylisticSet));
End;
Function TSDocxFontRange.WriteStrikeThrough(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteStrikeThrough), value);
End;
Function TSDocxFontRange.ReadStrikeThrough();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadStrikeThrough));
End;
Function TSDocxFontRange.WriteSpacing(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteSpacing), value);
End;
Function TSDocxFontRange.ReadSpacing();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadSpacing));
End;
Function TSDocxFontRange.WriteSmallCaps(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteSmallCaps), value);
End;
Function TSDocxFontRange.ReadSmallCaps();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadSmallCaps));
End;
Function TSDocxFontRange.WriteSizeBi(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteSizeBi), value);
End;
Function TSDocxFontRange.ReadSizeBi();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadSizeBi));
End;
Function TSDocxFontRange.WriteSize(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteSize), value);
End;
Function TSDocxFontRange.ReadSize();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadSize));
End;
Function TSDocxFontRange.WriteShadow(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteShadow), value);
End;
Function TSDocxFontRange.ReadShadow();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadShadow));
End;
Function TSDocxFontRange.ReadShading();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadShading));
End;
Function TSDocxFontRange.WriteScaling(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteScaling), value);
End;
Function TSDocxFontRange.ReadScaling();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadScaling));
End;
Function TSDocxFontRange.ReadReflection();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadReflection));
End;
Function TSDocxFontRange.WritePosition(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WritePosition), value);
End;
Function TSDocxFontRange.ReadPosition();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadPosition));
End;
Function TSDocxFontRange.WriteOutline(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteOutline), value);
End;
Function TSDocxFontRange.ReadOutline();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadOutline));
End;
Function TSDocxFontRange.WriteNumberSpacing(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteNumberSpacing), value);
End;
Function TSDocxFontRange.ReadNumberSpacing();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadNumberSpacing));
End;
Function TSDocxFontRange.WriteNumberForm(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteNumberForm), value);
End;
Function TSDocxFontRange.ReadNumberForm();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadNumberForm));
End;
Function TSDocxFontRange.WriteNameOther(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteNameOther), value);
End;
Function TSDocxFontRange.ReadNameOther();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadNameOther));
End;
Function TSDocxFontRange.WriteNameFarEast(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteNameFarEast), value);
End;
Function TSDocxFontRange.ReadNameFarEast();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadNameFarEast));
End;
Function TSDocxFontRange.WriteNameBi(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteNameBi), value);
End;
Function TSDocxFontRange.ReadNameBi();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadNameBi));
End;
Function TSDocxFontRange.WriteNameAscii(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteNameAscii), value);
End;
Function TSDocxFontRange.ReadNameAscii();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadNameAscii));
End;
Function TSDocxFontRange.WriteName(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteName), value);
End;
Function TSDocxFontRange.ReadName();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadName));
End;
Function TSDocxFontRange.WriteLine(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteLine), value);
End;
Function TSDocxFontRange.ReadLine();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadLine));
End;
Function TSDocxFontRange.WriteLigatures(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteLigatures), value);
End;
Function TSDocxFontRange.ReadLigatures();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadLigatures));
End;
Function TSDocxFontRange.WriteKerning(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteKerning), value);
End;
Function TSDocxFontRange.ReadKerning();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadKerning));
End;
Function TSDocxFontRange.WriteItalicBi(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteItalicBi), value);
End;
Function TSDocxFontRange.ReadItalicBi();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadItalicBi));
End;
Function TSDocxFontRange.WriteItalic(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteItalic), value);
End;
Function TSDocxFontRange.ReadItalic();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadItalic));
End;
Function TSDocxFontRange.WriteHidden(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteHidden), value);
End;
Function TSDocxFontRange.ReadHidden();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadHidden));
End;
Function TSDocxFontRange.ReadGlow();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadGlow));
End;
Function TSDocxFontRange.ReadFill();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadFill));
End;
Function TSDocxFontRange.WriteEngrave(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteEngrave), value);
End;
Function TSDocxFontRange.ReadEngrave();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadEngrave));
End;
Function TSDocxFontRange.WriteEmphasisMark(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteEmphasisMark), value);
End;
Function TSDocxFontRange.ReadEmphasisMark();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadEmphasisMark));
End;
Function TSDocxFontRange.WriteEmboss(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteEmboss), value);
End;
Function TSDocxFontRange.ReadEmboss();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadEmboss));
End;
Function TSDocxFontRange.ReadDuplicate();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadDuplicate));
End;
Function TSDocxFontRange.ReadDoubleStrikeThrough();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadDoubleStrikeThrough));
End;
Function TSDocxFontRange.WriteDisableCharacterSpaceGrid(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteDisableCharacterSpaceGrid), value);
End;
Function TSDocxFontRange.ReadDisableCharacterSpaceGrid();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadDisableCharacterSpaceGrid));
End;
Function TSDocxFontRange.WriteDiacriticColor(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteDiacriticColor), value);
End;
Function TSDocxFontRange.ReadDiacriticColor();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadDiacriticColor));
End;
Function TSDocxFontRange.WriteContextualAlternates(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteContextualAlternates), value);
End;
Function TSDocxFontRange.ReadContextualAlternates();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadContextualAlternates));
End;
Function TSDocxFontRange.WriteColorIndexBi(value);override;
Begin
CallFunction(ThisFunction(class(TSDocxFont).WriteColorIndexBi), value);
End;
Function TSDocxFontRange.ReadColorIndexBi();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadColorIndexBi));
End;
Function TSDocxFontRange.WriteColorIndex(value);override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).WriteColorIndex), value);
End;
Function TSDocxFontRange.ReadColorIndex();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadColorIndex));
End;
Function TSDocxFontRange.ReadBorders();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadBorders));
End;
Function TSDocxFontRange.WriteBoldBi(value);override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).WriteBoldBi), value);
End;
Function TSDocxFontRange.ReadBoldBi();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadBoldBi));
End;
Function TSDocxFontRange.WriteBold(value);override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).WriteBold), value);
End;
Function TSDocxFontRange.ReadBold();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadBold));
End;
Function TSDocxFontRange.WriteAllCaps(value);override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).WriteAllCaps), value);
End;
Function TSDocxFontRange.ReadAllCaps();override;
Begin
return CallFunction(ThisFunction(class(TSDocxFont).ReadAllCaps));
End;