字体突出显示颜色

Word文档中的文本可以用多种颜色“突出显示”,提供文本背景色。这种视觉效果类似于用荧光灯(通常是荧光黄)在印刷页上产生的效果。

协议

通过指定 WD_COLOR_INDEXFont.highlight_color .

>>> font = paragraph.add_run().font
>>> font.highlight_color
None
>>> font.highlight_color = WD_COLOR_INDEX.YELLOW
>>> font.highlight_color
YELLOW (7)
>>> font.highlight_color = WD_COLOR_INDEX.TURQUOISE
>>> font.highlight_color
TURQUOISE (3)
>>> font.highlight_color = None
>>> font.highlight_color
None

枚举

XML语义

映射 WD_COLOR_INDEX 成员 ST_Highlight 价值观:

AUTO = 'default'
BLACK = 'black'
BLUE = 'blue'
BRIGHTGREEN = 'green'
DARKBLUE = 'darkBlue'
DARKRED = 'darkRed'
DARKYELLOW = 'darkYellow'
GRAY25 = 'lightGray'
GRAY50 = 'darkGray'
GREEN = 'darkGreen'
PINK = 'magenta'
RED = 'red'
TEAL = 'darkCyan'
TURQUOISE = 'cyan'
VOILET = 'darkMagenta'
WHITE = 'white'
YELLOW = 'yellow'

XML样本

基线运行:

<w:r>
  <w:t>Black text on white background</w:t>
</w:r>

亮绿色文字:亮蓝色

<w:r>
  <w:rPr>
    <w:highlight w:val="green"/>
  </w:rPr>
  <w:t>Blue text on bright green background</w:t>
</w:r>

红色文本,绿色高亮:

<w:r>
  <w:rPr>
    <w:highlight w:val="darkGreen"/>
  </w:rPr>
  <w:t>Red text on green background</w:t>
</w:r>

架构摘要

根据模式,运行属性可以以任何顺序出现,并且每个属性可能出现多次。不知道这是什么语义,也不知道为什么要这么做,但需要注意的是。Word在写入文件时似乎按以下顺序排列它们:

<xsd:complexType name="CT_RPr">  <!-- denormalized -->
  <xsd:sequence>
    <xsd:choice minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="rStyle"          type="CT_String"/>
      <xsd:element name="rFonts"          type="CT_Fonts"/>
      <xsd:element name="b"               type="CT_OnOff"/>
      <xsd:element name="bCs"             type="CT_OnOff"/>
      <xsd:element name="i"               type="CT_OnOff"/>
      <xsd:element name="iCs"             type="CT_OnOff"/>
      <xsd:element name="caps"            type="CT_OnOff"/>
      <xsd:element name="smallCaps"       type="CT_OnOff"/>
      <xsd:element name="strike"          type="CT_OnOff"/>
      <xsd:element name="dstrike"         type="CT_OnOff"/>
      <xsd:element name="outline"         type="CT_OnOff"/>
      <xsd:element name="shadow"          type="CT_OnOff"/>
      <xsd:element name="emboss"          type="CT_OnOff"/>
      <xsd:element name="imprint"         type="CT_OnOff"/>
      <xsd:element name="noProof"         type="CT_OnOff"/>
      <xsd:element name="snapToGrid"      type="CT_OnOff"/>
      <xsd:element name="vanish"          type="CT_OnOff"/>
      <xsd:element name="webHidden"       type="CT_OnOff"/>
      <xsd:element name="color"           type="CT_Color"/>
      <xsd:element name="spacing"         type="CT_SignedTwipsMeasure"/>
      <xsd:element name="w"               type="CT_TextScale"/>
      <xsd:element name="kern"            type="CT_HpsMeasure"/>
      <xsd:element name="position"        type="CT_SignedHpsMeasure"/>
      <xsd:element name="sz"              type="CT_HpsMeasure"/>
      <xsd:element name="szCs"            type="CT_HpsMeasure"/>
      <xsd:element name="highlight"       type="CT_Highlight"/>
      <xsd:element name="u"               type="CT_Underline"/>
      <xsd:element name="effect"          type="CT_TextEffect"/>
      <xsd:element name="bdr"             type="CT_Border"/>
      <xsd:element name="shd"             type="CT_Shd"/>
      <xsd:element name="fitText"         type="CT_FitText"/>
      <xsd:element name="vertAlign"       type="CT_VerticalAlignRun"/>
      <xsd:element name="rtl"             type="CT_OnOff"/>
      <xsd:element name="cs"              type="CT_OnOff"/>
      <xsd:element name="em"              type="CT_Em"/>
      <xsd:element name="lang"            type="CT_Language"/>
      <xsd:element name="eastAsianLayout" type="CT_EastAsianLayout"/>
      <xsd:element name="specVanish"      type="CT_OnOff"/>
      <xsd:element name="oMath"           type="CT_OnOff"/>
    </xsd:choice>
    <xsd:element name="rPrChange" type="CT_RPrChange" minOccurs="0"/>
  </xsd:sequence>
</xsd:group>

<!-- complex types -->

<xsd:complexType name="CT_Highlight">
  <xsd:attribute name="val" type="ST_Highlight" use="required"/>
</xsd:complexType>

<!-- simple types -->

<xsd:simpleType name="ST_Highlight">
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="default"/>
    <xsd:enumeration value="black"/>
    <xsd:enumeration value="blue"/>
    <xsd:enumeration value="green"/>
    <xsd:enumeration value="darkBlue"/>
    <xsd:enumeration value="darkRed"/>
    <xsd:enumeration value="darkYellow"/>
    <xsd:enumeration value="lightGray"/>
    <xsd:enumeration value="darkGray"/>
    <xsd:enumeration value="darkGreen"/>
    <xsd:enumeration value="magenta"/>
    <xsd:enumeration value="red"/>
    <xsd:enumeration value="darkCyan"/>
    <xsd:enumeration value="cyan"/>
    <xsd:enumeration value="darkMagenta"/>
    <xsd:enumeration value="white"/>
    <xsd:enumeration value="yellow"/>
  </xsd:restriction>
</xsd:simpleType>