猿问

Python-docx:是否可以在特定位置(而不是末尾)向段落添加新的运行

我想在 MS Word 文本中将样式设置为更正的单词。由于无法在运行中更改文本样式,因此我想在现有段落中插入具有新样式的新运行...


for p in document.paragraphs: 

   for run in p.runs: 

       if 'text' in run.text:      

            new_run= Run()

            new_run.text='some new text' 

            # insert this run into paragraph

            # smth like:

            p.insert(new_run) 

怎么做?


p.add_run() 将 run 添加到段落末尾,不是吗?


更新

最好的办法是能够克隆运行(并在特定运行后插入它)。通过这种方式,我们可以在新的/克隆的版本中重现原始运行的样式属性。


更新 2

我可以管理那个插入代码:


if 'text' in run.text:

    new_run_element = CT_R() #._new() 

    run._element.addnext(new_run_element)

    new_run = Run(new_run_element, run._parent)

    ...

但在那之后:


该段运行号留相同:len(p.runs)

当我将该文档保存在文件中时,MS Word 无法打开它:

噜噜哒
浏览 824回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答