在日常办公或文档整理中,我们常常需要将多个 TXT 文件合并成一个 PDF 文档,尤其是中文内容的处理更是令人头疼。今天,我将分享一个基于 Python 的桌面应用程序,它不仅支持多文件合并,还完美兼容中文字体显示,界面友好,操作简单。
C:\pythoncode\new\multitxtfilemegerintopdf.py
🧠 技术栈概览
- wxPython:用于构建跨平台 GUI 界面
- ReportLab:用于生成 PDF 文件
- TTFont + SimSun.ttf:解决中文字体渲染问题
🖼️ 应用界面功能

该工具采用 wxPython 构建图形界面,主要包含以下控件:
- 📂 文件列表框:展示已选择的 TXT 文件
- 🔘 按钮组:
- "选择TXT文件":支持多选
- "全选":快速选中所有文件
- "合并为PDF":执行合并操作并保存输出
用户可以通过文件对话框选择多个 TXT 文件,点击"合并为PDF"后,程序将自动将内容整合并输出为一个 PDF 文件。
🧩 中文字体支持的关键点
ReportLab 默认不支持中文字体,因此我们需要手动注册一个中文 TTF 字体文件:
pdfmetrics.registerFont(TTFont("SimSun", "simsun.ttf"))
这一步确保了 PDF 中的中文内容不会出现乱码或方框。程序还会在启动时检查字体文件是否存在,避免运行时错误。
📄 PDF 生成逻辑解析
核心函数 create_pdf()
负责将多个 TXT 文件内容写入 PDF:
-
设置页面尺寸为 A4,定义边距和行高
-
每个文件内容前添加文件名作为标题
-
自动分页处理,避免内容溢出
-
使用
drawString()
方法逐行写入文本if y < margin:
c.showPage()
y = height - margin
c.setFont("SimSun", 12)
这段逻辑确保每页内容不会超出边界,并在新页继续写入。
🧪 使用体验与扩展建议
该工具适合快速整理会议记录、日志文件、文本资料等,尤其在中文环境下表现稳定。未来可以考虑:
- ✅ 支持 TXT 编码自动识别(如 GBK)
- ✅ 添加字体选择功能
- ✅ 支持 PDF 样式自定义(如页眉、页脚、分页符)
📦 项目部署建议
- 将
simsun.ttf
放入程序目录 - 使用 PyInstaller 打包为 EXE,方便分发
- 可集成到文档管理系统或自动化流程中