Docx - 替换元素并设置字体样式?

Docx - Replace element and set font-style?

我想替换此 docx 文件中的一些段落文本:

使用此代码通常可以正常工作:

from docx import Document
from docx.shared import Pt
file = "template.docx"
doc = Document(file)  
for idxPara, elemPara in enumerate(doc.paragraphs):
  if "«Kunde»" in elemPara.text:
    doc.paragraphs[idxPara].text = "Anderer Text für Kunde"
doc.save('TEST.docx')  

输出现在看起来像这样: (一切正常,但我想更改字体样式)

所以我尝试了这个代码:

from docx import Document
from docx.shared import Pt

file = "template.docx"
doc = Document(file)  

style = doc.styles['Normal']
font = style.font
font.name = 'Corbel'
font.size = Pt(10)

for idxPara, elemPara in enumerate(doc.paragraphs):
  if "«Kunde»" in elemPara.text:
    doc.paragraphs[idxPara].style = doc.styles['Normal']
    doc.paragraphs[idxPara].text = "Anderer Text für Kunde"

doc.save('TEST.docx')  

但不幸的是,这种风格现在似乎可以使用 - 但该段中的文本出于某种原因位于另一个位置

如何更改段落并设置该段落的样式?

我想我找到了一个解决方案 - 迭代段落中的运行,似乎在替换后样式保持不变:

from docx import Document
    for idxPara, elemPara in enumerate(doc.paragraphs):
      for run in elemPara.runs:
        if "«Kunde»" in run.text:
          run.text = "Anderer Text"