Open Office XML 格式中的 Style 设计原理

举报
Jerry Wang 发表于 2022/12/25 09:26:20 2022/12/25
【摘要】 Microsoft Word 中有一个专门用于样式的完整工具栏:正常、无间距、标题 1、标题 2、标题等。 这些样式存储在 /word/styles.xml 中,一个例子如下:一旦在 Word 文档里有文本定义了额外的样式后,我们将在段落属性标记 <w:pPr> 中找到对该样式的引用。 下面是一个示例,其中我使用样式标题 1 定义了我的文本:Heading1 本身的样式定义,书写在文件 st...

Microsoft Word 中有一个专门用于样式的完整工具栏:正常、无间距、标题 1、标题 2、标题等。 这些样式存储在 /word/styles.xml 中,一个例子如下:

一旦在 Word 文档里有文本定义了额外的样式后,我们将在段落属性标记 <w:pPr> 中找到对该样式的引用。 下面是一个示例,其中我使用样式标题 1 定义了我的文本:

Heading1 本身的样式定义,书写在文件 styles.xml 内:

<w:style/w:rPr/w:b> xpath 指定字体为粗体,<w:style/w:rPr/w:color> 表示字体颜色。 <w:basedOn> 指示 MSWord 对任何缺失的属性使用“普通”样式。<w:style/w:rPr/w:b> xpath 指定字体为粗体,而 <w:style/w:rPr/ w:color> 表示字体颜色。 <w:basedOn> 指示 MSWord 对任何缺失的属性使用“普通”样式。

PROPERTY INHERITANCE

Open Office XML 格式领域里有个名词叫做 run:一个简单的文档由段落组成,一个段落由一系列 run(一系列具有相同字体、颜色等的文本)组成,run 由字符(例如 <w:t>)组成。<w:t> 标记可能有几个字符,在同一个 run 中可能有几个字符。

文本属性是可以继承的。 运行有自己的属性(w:p/w:r/w:rPr/*),但它也继承了段落的属性(w:r/w:pPr/*),并且两者都可以从文件 /word/styles.xml 引用样式属性。

段落和运行以默认属性开头:w:styles/w:docDefaults/w:rPrDefault/*w:styles/w:docDefaults/w:pPrDefault/*。 要获得角色属性的最终结果,您应该:

  • 使用默认的 run/paragraph properties
  • 添加 run/paragraph style properties
  • 添加本地的 local run/paragraph properties
  • 添加来自 paragraph properties 的结果

上面提到的将 B append 到 A 时,意思是遍历所有 B 属性并覆盖所有 A 的属性,使所有不相交的属性保持原样。

一个 run 实例中的字符可以从其段落继承,并且都可以从styles.xml 继承。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。