如何使用docx更改为特定段落的字体(它正在更改整个word文档的字体)



所以我的主要问题是,我目前正试图使用代码输出一封求职信基于我的输入。稍后我将更改变量和输入的代码。我正在使用一个word文档模板,其中有特定的字符串,我将用正则表达式更改。我的主要问题是,当我改变一些东西,它返回到原来的字体。然而,没有什么太大的改变,但我必须加粗2个单词,并使2个单词的字体变小,以便将一些更改后的单词返回到原始模板。

当我使用docx更改一个特定段落的粗体时。段落它会改变整篇文章的字体,而不是特定段落的字体。我使用document.paragraphs[3].text来确保它只改变我需要的两个单词,并且正确显示,但是当我使用document.paragraphs[3].style.font.bold = True时,它改变了整个文档的粗体。

from docx import Document
import re
document = Document('Cover_Letter.docx')
for para in  document.paragraphs:
if 'Buisness_Name' in para.text:
para.text = re.sub('Buisness_Name', 'NEWBUISNESS', para.text)
if 'Date_Name' in para.text:
para.text = re.sub('Date_Name', 'NEWDATE', para.text)
if 'Internship_Name' in para.text:
para.text = re.sub('Internship_Name', 'NEWINTERNSHIP', para.text)
if 'parachange567' in para.text:
para.text = re.sub('parachange567', 'NEWTEXT', para.text)
document.paragraphs[3].style.font.bold = True
# print(para.text)
document.save('demo.docx')

您尝试创建新样式了吗?

From the docs:

>>> from docx.enum.style import WD_STYLE_TYPE
>>> styles = document.styles
>>> style = styles.add_style('Citation', WD_STYLE_TYPE.PARAGRAPH)
>>> style.name
'Citation'
>>> style.type
PARAGRAPH (1)

然后将段落样式设置为新样式?

最新更新