首页 > 解决方案 > 如何使用 python-docx 使文本变为粗体、蓝色、16 号和特定字体?

问题描述

我试图让 python-docx 将我的一些文本吐出为 16 号蓝色和粗体 Calibri。我知道如何单独执行,但它会生成以每种不同格式重复的相同单词。如何让它将我的所有格式应用到一段文本?

以下是我目前拥有的。

    font.name='Calibri'
    document.add_paragraph().add_run('Area: '+str(df.loc[df['Subject']==i,'Area'].iloc[0])).bold=True
    document.add_paragraph().add_run('Area: '+str(df.loc[df['Subject']==i,'Area'].iloc[0])).font.color.rgb = RGBColor(79, 129, 189)
    document.add_paragraph().add_run('Area: '+str(df.loc[df['Subject']==i,'Area'].iloc[0])).font.size=16

目前它不应用字体并产生以下文本格式

文本

文字(蓝色)

文字(16号)

我希望它在粗体、蓝色、16 号和 Calibri 后生成“文本”。我怎么做?

标签: pythoncolorsautomationformattingpython-docx

解决方案


run = document.add_paragraph().add_run(
    'Area: '+str(df.loc[df['Subject']==i,'Area'].iloc[0])
)
run.bold=True
run.font.color.rgb = RGBColor(79, 129, 189)
run.font.name = 'Calibri'
run.font.size=16

.add_run()如果您只设置一个属性并且之后不需要运行引用,则您的初始表单(只需在调用结束时添加一个属性)会很方便。但更通用的方法是捕获Run返回的对象.add_run(),然后对其应用所需的任何属性设置。


推荐阅读