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 简历
工具化思维(识别模式 → 应用规则 → 批量处理)是程序员解决重复性工作的基本思路。