当前位置: 首页 > news >正文

持中文的 TXT 合并 PDF 工具 —— GUI + ReportLab 实战

在日常办公或文档整理中,我们常常需要将多个 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 - marginc.setFont("SimSun", 12)

这段逻辑确保每页内容不会超出边界,并在新页继续写入。


🧪 使用体验与扩展建议

该工具适合快速整理会议记录、日志文件、文本资料等,尤其在中文环境下表现稳定。未来可以考虑:

  • ✅ 支持 TXT 编码自动识别(如 GBK)
  • ✅ 添加字体选择功能
  • ✅ 支持 PDF 样式自定义(如页眉、页脚、分页符)

📦 项目部署建议

  • simsun.ttf 放入程序目录
  • 使用 PyInstaller 打包为 EXE,方便分发
  • 可集成到文档管理系统或自动化流程中

http://www.dtcms.com/a/320773.html

相关文章:

  • 基于定制开发开源AI智能名片S2B2C商城小程序的定价策略与市场定位研究
  • UniApp Vue3 TypeScript项目中使用xgplayer播放m3u8视频的显示问题
  • AI学习笔记三十五:实时传输视频
  • webrtc弱网-EncodeUsageResource类源码分析及算法原理
  • Baumer相机如何通过YoloV8深度学习模型实现高速公路车辆的实时检测计数(C#代码UI界面版)
  • 云原生时代的 Linux:容器、虚拟化与分布式的基石
  • 深入理解VideoToolbox:iOS/macOS视频硬编解码实战指南
  • 微软公布Windows 2030,要彻底淘汰鼠标、键盘
  • token过期为了保证安全,refresh token不过期,那么拿到refresh token就可以获取token,不还是不安全吗
  • 今日行情明日机会——20250808
  • 座舱HMI软件开发架构:核心功能与案例解析
  • 【重学MySQL】事务隔离
  • OLE延时剪切板技术深度解析:从资源管理器支持到远程桌面文件同步 含c++ demo代码 亲测可用
  • R语言代码加密(1)
  • 贪心(set维护)
  • React函数组件灵魂搭档:useEffect深度通关指南!
  • Docker容器部署discuz论坛与线上商城
  • 项目一系列-第2章 Git版本控制
  • 05--STL认识(了解)
  • 静态与动态住宅代理IP的技术差异和技术详解
  • Pytest项目_day09(skip、skipif跳过)
  • oracle-plsql理解和操作
  • 有鹿机器人:如何用±2cm精度重塑行业标准?
  • Function + 异常策略链:构建可组合的异常封装工具类
  • 机械学习--SVM 算法
  • 【Leetcode Hot 100 题目精华解析2025】python自用 --128.最长连续序列
  • 腾讯前端面试真题
  • Kafka生产者事务机制原理
  • Java集合中的链表
  • 解耦主库负载,赋能数据流转:MySQL Binlog Server 核心指南