Python中如何实现Word文档段落倒序排版?


Python中如何实现Word文档段落倒序排版?

1 回复

from docx import Document
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT

def reverse_paragraphs(input_path, output_path):
    """
    将Word文档的所有段落顺序完全倒置
    """
    # 读取原文档
    doc = Document(input_path)
    paragraphs = doc.paragraphs
    
    # 创建新文档
    new_doc = Document()
    
    # 倒序复制段落(保留原格式)
    for para in reversed(paragraphs):
        new_para = new_doc.add_paragraph()
        
        # 复制文本和格式
        for run in para.runs:
            new_run = new_para.add_run(run.text)
            new_run.bold = run.bold
            new_run.italic = run.italic
            new_run.underline = run.underline
            new_run.font.name = run.font.name
            new_run.font.size = run.font.size
        
        # 复制段落格式
        new_para.alignment = para.alignment
        new_para.paragraph_format.left_indent = para.paragraph_format.left_indent
        new_para.paragraph_format.first_line_indent = para.paragraph_format.first_line_indent
        new_para.paragraph_format.line_spacing = para.paragraph_format.line_spacing
    
    # 保存新文档
    new_doc.save(output_path)
    print(f"段落倒序完成,已保存至: {output_path}")

# 使用示例
if __name__ == "__main__":
    reverse_paragraphs("input.docx", "output_reversed.docx")

核心要点:

  1. 使用python-docx库操作Word文档
  2. reversed(paragraphs)实现段落倒序
  3. 逐段复制时需同时复制文本和格式属性
  4. 运行前需安装:pip install python-docx

一句话建议: 记得处理空段落和表格等特殊情况。

回到顶部