当前位置:网站首页>Open Office XML 格式中的 Style 设计原理
Open Office XML 格式中的 Style 设计原理
2022-08-08 18:19:00 【汪子熙】
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 继承。
边栏推荐
猜你喜欢
看三年的CRUD程序员如何解决数据库死锁的
Smobiler的复杂控件的由来与创造
2021年9月电子学会图形化二级编程题解析含答案:帮小企鹅躲避暴风雪
CF1716D(“按顺序“的完全背包)
slam测评工具evo的安装与使用
一起了解分层架构&SOA架构
vue项目打包后的网页缓存问题
2022年6月电子学会考级试卷真题解析(含答案和所有文档下载)
3D游戏建模教程:游戏角色制作——赏金猎人,超逼真
Nioke 2022 Summer Multi-School 6 B Eezie and Pie (Difference on the tree + multiplication to find the kth ancestor board)
随机推荐
黑磷量子点/无机荧光量子点/石墨烯量子点水凝胶/量子点/纳米水凝胶荧光探针的研究制备
21天学习第二天-类型转换
Shell脚本三剑客(grep、sed、awk)
Go-Excelize API源码阅读(四)——Save()
Oracle--表
差分信号简述
2021年9月电子学会图形化三级编程题解析含答案:绘制图形
牛客多校第6场M(dp或者递推)
面了个腾讯30k+出来的,他让我见识到什么叫精通MySQL调优
面试官:synchronized 和 Lock 的区别是什么?
21天学习挑战赛——机器学习03
FTP服务初探
2021年9月电子学会图形化三级编程题解析含答案:接红包游戏
Laravel 5.8笔记
面试突击:输入URL之后会执行什么流程?
QT With OpenGL (Bloom) (Bloom)
微信小程序云开发 | 插件的微信小程序云开发
记录贴:pytorch学习Part5
PG 之 huge page
牛客2022 暑期多校6 B Eezie and Pie(树上差分 + 倍增求第 kth 祖先板子)