问题描述
TLDR:,当我们要在run
属性中查找值并返回{{1}时,它的优先级更高Style Inheritance或Style Hierarchy }作为输出。?
示例:从文档中的所有运行中打印字体名称
None
问题:
当前,我正在研究一个用例,以检查给定文档是否具有特定的字体/语言/字体大小等,...
例如:为了获得整个文档的语言(拼写和语法)。目前,我按照以下步骤使用doc = Document()
for para in doc.paragraphs:
if para.text:
for run in para.runs:
print(run.font.name)
获取值:
- 加载文档
- 遍历段落
- 遍历一段段落
- 检查
Style Hierarchy
的(当前运行)rPr - 如果运行没有任何价值,请检查当前 para 的
lang
- 如果para中没有值,则从
rPr
中获取值 - 如果我在步骤4-6之间得到一个值,我会将该值视为运行值
这种方法帮助我获得了lang和font的预期结果(至少对于我拥有的文档而言)。
但是在某些情况下,lang
本身没有价值,这种方法也无济于事,于是我听说了Style Inheritance。
因此,如果当前样式没有值,那么我只是实现了一个递归函数以从docDefaults rPr
获取值。
我对实现进行了微小的更改,因为只要docDefaults
中没有任何值,我只需检查base_style
的值,然后在层次结构中向上移动一步即可。
我不确定我遵循的方法是否正确。如果有一个简单的方法可以实现这一目标。请帮忙。 References
Source Code for the above steps
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)