跳到正文
Joeplover
后端开发·2026-04-29·约 2 分钟阅读

TXT 转 DOCX:论文格式转换工具

Python 工具,将论文 .txt 文件转换为格式化 .docx,支持文献引用处理、上标格式和字体设置。

文档转换

TXT 转 DOCX:论文格式转换工具

为什么写这个工具

毕业季写论文,最大的痛点不是写内容,而是排版。学校给了模板文档(.docx),要求在特定位置使用特定样式——标题用几号字、正文行距多少、页眉页脚怎么设置。手动排版一篇 30 页的论文让人崩溃。我写了这个工具:把纯文本 TXT 自动转换成符合模板格式的 DOCX 文档,一键完成排版。

技术实现

使用 python-docx 库操作 Word 文档:

from docx import Document
from docx.shared import Pt, Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH
import re

def txt_to_docx(input_path, output_path):
    doc = Document()
    
    with open(input_path, 'r', encoding='utf-8') as f:
        lines = f.readlines()
    
    i = 0
    while i < len(lines):
        line = lines[i].strip()
        
        if re.match(r'^第.+章', line):
            # 一级标题:黑体 小二号 居中
            p = doc.add_heading(line, level=1)
        elif re.match(r'^\d+\.\d+', line):
            # 二级标题:黑体 四号
            p = doc.add_heading(line, level=2)
        elif line == '':
            # 空行
            doc.add_paragraph('')
        else:
            # 正文:宋体 小四号 1.5 倍行距
            p = doc.add_paragraph(line)
            p.style.font.name = '宋体'
            p.paragraph_format.line_spacing = 1.5
    
    doc.save(output_path)

核心功能

  • 正则识别章节标题:根据"第一章"、"1.1"、"一、"等模式自动设置标题级别
  • 自定义样式:字体、字号、行距、缩进、段前段后间距
  • 目录生成:自动插入 Word 目录域(按 Ctrl+A → F9 更新)
  • 页眉页脚:奇偶页不同的页眉设置
  • 封面提取:将 TXT 开头特定标记的内容作为封面

配置驱动设计

# 通过配置文件控制样式,不改代码
STYLES = {
    "heading1": {"font": "黑体", "size": 18, "bold": True, "align": "center"},
    "heading2": {"font": "黑体", "size": 14, "bold": True},
    "body": {"font": "宋体", "size": 12, "line_spacing": 1.5},
    "caption": {"font": "宋体", "size": 10.5, "align": "center"},
}

使用体验

python txt_to_docx.py --input thesis.txt --output thesis.docx --template school_template.docx

把纯文本论文丢进去,几秒钟生成排好版的 Word 文档。30 页论文的排版时间从 2 小时降到 5 秒。

扩展思路

同样的"识别结构 → 应用格式"的思路可以扩展到其他场景:

  • Markdown 转 DOCX:识别 #、## 等标记设置标题级别
  • 爬虫数据转报告:JSON 数据直接生成格式化 Word 报告
  • 批量简历生成:个人信息 JSON → 统一格式的 Word 简历

工具化思维(识别模式 → 应用规则 → 批量处理)是程序员解决重复性工作的基本思路。