Python-docx和保留格式

问题描述 投票:0回答:1

我正在尝试使用python-docx自动执行报告编写。我在人字形括号内的模板文档中表示替换项。例如<customer_name>

这可以通过遍历python中的段落并执行字符串替换来正常工作。缺点是它删除了我应用于非替换文字的所有突出显示。粗体,斜体和下划线文本显示为确定。

for p in doc.paragraphs:
    p.text = p.text.replace('<customer_name>', 'John Smith')

我也尝试过遍历运行(这些是模块提供的段落的另一个子集),但这还不够鲁棒,因为我的标签被划分为多次运行,而我的replace语句也无法毫无困难地检测到它们。

我是否忽略了一些小细节或替代方法,使我可以在不删除突出显示的情况下更改文本?

python python-docx
1个回答
0
投票

[通过进一步检查run对象,有两个感兴趣的属性:fontelementfont属性包含一个名为text的属性,可用于提取和编辑不同运行的文本。 element属性包含一个名为highlight_color的属性。通过将highlight_color设置为None,可以删除突出显示。

© www.soinside.com 2019 - 2024. All rights reserved.