将段落复制到同一文档(python 3.x,docx)

时间:2016-06-28 13:29:14

标签: python docx python-docx

假设我的docx文档中有一段具有特定文本格式的段落,例如:
“Foo bar
我想制作类似本段模板的内容,将其多次复制到同一文档中 像示例中那样复制文本意味着丢失文本格式。

from docx import Document

document = Document('input.docx')
template = document.paragraphs[0]
for x in range(100):
    document.add_paragraph(template.text)
document.save('output.docx')

使用python-docx库有没有通用的方法?
特别感谢python和django的其他解决方案!
提前谢谢。

1 个答案:

答案 0 :(得分:0)

在您的简单示例中,您可以执行以下操作:

def clone_run_props(tmpl_run, this_run):
    this_run.bold = tmpl_run.bold
    ... maybe other possible run properties ...

template_paragraph = ... however you get this ...
new_paragraph = document.add_paragraph()
for run in template_paragraph:
    cloned_run = new_paragraph.add_run()
    clone_run_props(run, cloned_run)
    cloned_run.text = ... however you get this ...

当字符格式直接应用时,此方法将起作用,但在间接应用时则不会,例如通过字符样式。