通过 python-docx 剪切和移动 Run
本文由 AI(大语言模型)翻译。可能存在错误或不准确之处。如需查看原文,请参阅原文。
我想在同一个文档中剪切并粘贴一个 run,但 python-docx(1.1.0) 没有这个功能。
这里有一些相关页面,但并没有解决这个问题:How do I copy the contents of a word document? Copy paragraphs elements from one document to another
所以我仔细阅读了源代码,发现:
- 你可以通过
paragraph._p和run._r处理 OXML 对象,也可以调用(paragraph/run)._element - 如果你把一个
run._r添加到另一个paragraph._p,它会自动从原段落中移除
代码如下:
# Get all_para and para_number
# all_para: all_para in document, para_number: current index in all_para
try:
next_para = all_para[para_number + 1]
new_para = next_para.insert_paragraph_before(style=para.style)
except IndexError:
new_para = para._parent.add_paragraph(para.style)
run = para.runs[-1]
new_para._p.append(run._r)
# save document