代码之家  ›  专栏  ›  技术社区  ›  Insolence357

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

  •  2
  • Insolence357  · 技术社区  · 8 年前

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

    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 回复  |  直到 8 年前
        1
  •  1
  •   scanny    8 年前

    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 ...
    

    当字符格式为 直接应用