如何使用 python docx 获取 word 文档中的实际文本样式
How to get actual style of text in word document using python docx
我正在使用 python docx 库来读取 MS word 文件 (.docx)。当我阅读段落时,我使用字体函数来获取所有样式属性。但有时它会为字体大小属性提供 None 。有什么方法可以获取段落包含的实际字体大小。
下面给出了我用来解析段落的示例代码
from docx import Document
d = Document(document_path)
for paragraph in d.paragraphs:
for run in paragraph.runs:
print (run.font.size)
以下代码对我有用:
将它除以 12700 得到实际字体大小。
import docx
docFile = docx.Document("C:/Users/vjadhav6/Desktop/testFile.docx")
for i in docFile.paragraphs:
for j in i.runs:
print(j.font.size/12700)
简短的回答是否定的。您要求的是 effective 字体大小,而 python-docx
只能看到明确设置的字体大小。当 font.size
报告 None 时,它是该段落的默认值,无论它是什么,这取决于样式层次结构。
在许多情况下,它可能是适用段落样式的字体大小,但唯一可以确定的方法是遍历该文本节点的样式层次结构到第一个显式定义。
我正在使用 python docx 库来读取 MS word 文件 (.docx)。当我阅读段落时,我使用字体函数来获取所有样式属性。但有时它会为字体大小属性提供 None 。有什么方法可以获取段落包含的实际字体大小。 下面给出了我用来解析段落的示例代码
from docx import Document
d = Document(document_path)
for paragraph in d.paragraphs:
for run in paragraph.runs:
print (run.font.size)
以下代码对我有用:
将它除以 12700 得到实际字体大小。
import docx
docFile = docx.Document("C:/Users/vjadhav6/Desktop/testFile.docx")
for i in docFile.paragraphs:
for j in i.runs:
print(j.font.size/12700)
简短的回答是否定的。您要求的是 effective 字体大小,而 python-docx
只能看到明确设置的字体大小。当 font.size
报告 None 时,它是该段落的默认值,无论它是什么,这取决于样式层次结构。
在许多情况下,它可能是适用段落样式的字体大小,但唯一可以确定的方法是遍历该文本节点的样式层次结构到第一个显式定义。