【发布时间】:2023-01-14 14:38:03
【问题描述】:
我正在使用 python-docx 包来处理一些 MS Word 文档。我需要弄清楚一些文本的颜色。为此,您可以循环遍历段落并循环遍历段落内的运行并抓取
color = run.font.color.rgb
这个问题是有时(经常)这是None。
我在 github 上找到了这篇文章,@scanny 的回答,我认为他管理着这个包: https://github.com/python-openxml/python-docx/issues/139 在这篇文章中,他说颜色可以从样式继承。
我有兴趣了解继承路径。我知道如何查看color = run.style.font.color.rgb和color = paragraph.style.font.rgb。
有时这些样式没有与之关联的颜色,但是当我将运行和段落样式的名称与与文档关联的样式迭代器中的样式进行比较时:
for style in doc.styles:
if style.name == run.style.name:
color = style.font.color.rgb
颜色有时会在这里显示... 您也可以使用 paragraph.style.name 而不是运行。
但是有一些文件,即使在所有这些地方寻找颜色后,我仍然到处都找不到。在一个这样的文档中,有一个名为 Default 的样式,它具有与之关联的颜色。所有其他样式是否都继承默认样式的颜色?如果是这样,这是一个独特的名字吗?我怎么知道哪些样式继承了哪些其他样式的颜色?
【问题讨论】:
-
链接到一些示例文档文件以制作 mcve 可能会有所帮助
-
也许你应该使用另一个包版本否则检查这个answer。
标签: python colors ms-word python-docx