以python读取doc/docx内容,同时保留字体样式



我想用每个单词的字体样式读取文档文件test.docx的内容。它包含以下示例段落:

............

这是一个测试文件,粗体和斜体内容。我写这篇稿子是为了测试。我只需要找到样式Python中读取每个单词时.

.............

我正在使用python-docx阅读它

from docx import Document
filename = "./test.docx"
document = Document(filename)
for para in document.paragraphs:
print(para.text)

但是它正在读取没有字体样式的内容(即粗体不再是粗体,斜体不再是斜体)。

是否有一种方法可以读取每个单词的字体样式?

您需要解决两个主题来解决这个需求:

  1. 如何在终端打印粗体或斜体文本

如果您的终端支持它(这不是Windows cmd的情况,但它将在PyCharm Python控制台中工作),您可以使用ansi转义码:

class FontStyles:
BOLD = '33[1m'
END = '33[0m'
ITALIC = 'x1B[3m'
  1. 如何获取段落字体样式

此信息存储在样式ParagraphStyle属性的font属性中。

把它放在一起:

for paragraph in document.paragraphs:
is_bold = paragraph.style.font.bold
is_italic = paragraph.style.font.italic
print(f"{FontStyles.ITALIC if is_italic else ''}{FontStyles.BOLD if is_bold else ''}{FontStyles.END if is_bold or is_italic else ''}")

相关内容

  • 没有找到相关文章