首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用python docx克隆/复制.docx文件并保留所有样式和对齐

如何使用python docx克隆/复制.docx文件并保留所有样式和对齐
EN

Stack Overflow用户
提问于 2021-01-29 22:25:51
回答 1查看 257关注 0票数 0

我想克隆docx文件的所有样式和路线。这是我的代码:

代码语言:javascript
运行
复制
import docx
from docx import Document

doc = docx.Document('my_word_file.docx')
allText = []
for docpara in doc.paragraphs:
    allText.append((docpara.text).replace('a' ,'s')

mydoc = docx.Document()
mydoc.add_paragraph(allText)
mydoc.save("cloned.docx")

所以我正在修复一些错误,文件正在保存,但没有样式或选项卡或输入。如何保持更改和样式?

EN

回答 1

Stack Overflow用户

发布于 2021-01-29 22:47:42

我认为方法是编写自己的函数来复制每个段落的文本和样式。下面是你可以做的第一个实现:

代码语言:javascript
运行
复制
from docx import Document

def copy_paragraph(output_doc, paragraph):

    output_paragraph = output_doc.add_paragraph()
    # Alignment data of whole paragraph
    output_paragraph.paragraph_format.alignment = paragraph.paragraph_format.alignment
    for row in paragraph.runs:
        output_row = output_paragraph.add_run(row.text)
        # Font data
        output_row.style.name = row.style.name
        # Size of font data
        output_row.font.size = row.font.size
        # Bold data
        output_row.bold = row.bold
        # Italic data
        output_row.italic = row.italic
        # Underline data
        output_row.underline = row.underline
        # Color data
        output_row.font.color.rgb = row.font.color.rgb
    
doc = Document('my_word_file.docx')
mydoc = Document()
for paragraph in doc.paragraphs:
    copy_paragraph(mydoc, paragraph)
mydoc.save("cloned.docx")

我不排除可能有其他参数需要复制(例如,文本的突出显示等)。在这种情况下,我建议您做一些测试,并参考编写得很好的docx documentation

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65956300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档