Python-docx:如何识别段落是否为斜体

Python-Docx: How to identify whether a paragraph is italicized

所以,假设我有这个代码:

import docx

doc = docx.Document(r'C:\example.docx')
run_list = []

for p in doc.paragraphs:
   for run in p.runs:
      if not run.italic:
         run_list.append(run.text)

它现在会准确地将所有非斜体 运行 添加到 run_list,并跳过所有斜体 运行。但是,如果整个段落都是斜体,而不是只有一个 运行,run.italic 将 return False。没有 paragraph.italic 方法,所以我想知道如何也跳过所有斜体段落?

好的,经过大量挖掘,我似乎 运行 进入了 python-docx 的限制。显式样式(即直接应用于 运行 的样式)和有效样式(即由于样式层次结构而显示的样式)之间存在差异 无法正常工作的段落应用了 'Subtle Emphasis' 样式它。这种样式告诉 Word 将斜体应用于整个段落;因此,个人 运行 没有分配。

一些程度,可以通过比较paragraph.style.name来抵消这一点。但是,除此之外,python-docx 无法评估有效 样式。

进一步阅读:https://python-docx.readthedocs.io/en/latest/dev/analysis/features/text/font.html

https://python-docx.readthedocs.io/en/latest/user/styles-using.html