一天一个开源项目(第53篇):PDF 补丁丁 - 功能全面的 PDF 工具箱,编辑书签、解除限制、合并拆分、OCR 识别

0 阅读5分钟

引言

"永久免费,绝不过期,无广告,无弹出废话对话框,不窥探隐私。"

这是「一天一个开源项目」系列的第 53 篇文章。今天介绍的项目是 PDF 补丁丁(PDFPatcher,GitHub)。

需要编辑 PDF 书签、解除复制打印限制、合并拆分文档、提取图片、将图片 PDF 转为可搜索书签?PDF 补丁丁是一款基于 .NET 框架PDF 工具箱:支持编辑书签剪裁旋转页面解除限制提取或合并文档探查文档结构OCR 识别字体替换等,采用 AGPL + 良心授权,永久免费、无广告、无弹窗。

你将学到什么

  • PDF 补丁丁的核心功能与使用场景
  • 技术架构:iText + MuPDF 双引擎
  • 书签编辑器、文档合并、OCR 等特色功能
  • 良心授权协议的含义
  • 与同类 PDF 工具的对比

前置知识

  • 对 PDF 文档有基本了解
  • Windows 系统使用经验(本工具仅支持 Windows)

项目背景

项目简介

PDF 补丁丁(PDFPatcher)是一款 PDF 处理工具,基于 .NET Framework 开发,主要采用 iTextMuPDF 两个开源组件。iText 负责解析、生成、修改 PDF 及嵌入字体;MuPDF 负责渲染 PDF 为位图。功能覆盖编辑、制作、拆分、合并、OCR、结构分析等。

作者

项目数据


主要功能

核心功能

类别功能
修改文档文档属性、页码编号、页面链接;统一页面尺寸;删除自动打开网页等动作;去除复制及打印限制;设置阅读器初始模式;清理隐藏垃圾;重新压缩黑白图片;旋转页面
书签编辑带阅读界面(支持竖排从右到左);批量修改书签属性;书签精确定位;查找替换(正则、XPath);自动快速生成书签
制作 PDF合并 PDF 或图片;保留原书签或挂新书签;根据文件名生成书签;统一页面尺寸
拆分合并拆分或合并 PDF,保留或挂上新书签
提取导出高速无损导出图片;页面转图片;提取或删除指定页面;调整页面顺序
高级功能根据元数据重命名;OCR 识别(调用微软 Office MODI);图片 PDF 目录页转书签;替换字体;嵌入字库到 PDF
结构分析树视图显示文档结构;编辑修改节点;导出为 XML

使用场景

  1. 电子书整理:合并扫描 PDF、生成书签、统一页面尺寸
  2. 文档去限制:去除复制、打印限制,便于阅读和引用
  3. 批量处理:根据元数据重命名、提取页面、批量导出图片
  4. 图片 PDF 优化:OCR 识别目录页,转为可点击书签
  5. 字体嵌入:嵌入字库到 PDF,解决 Kindle 等设备乱码

快速开始

运行环境

  • Windows 7 及以上
  • .NET Framework 4.0–4.8
  • OCR 功能需安装 Microsoft Office 2003/2007 的 Document Imaging 组件(MODI)

下载与安装

GitHub Releases 下载最新版,解压即可使用,无需安装。

编译源码(可选):

  • Visual Studio 2022 或更新版本
  • 安装「.NET 桌面开发」和「C++ 桌面开发」工作负载
  • 目标框架建议 .NET Framework 4.8

良心授权

AGPL + 良心授权:软件基于 AGPL,附加条件为「用户每次使用后如有所获益,应行一善事」。善事无分大小,有心则行。若使用源码开发商业软件并产生收益,应将收益中不低于千分之一的金额捐赠给弱势群体。遵循与否全在于良心。

项目优势

对比项PDF 补丁丁商业 PDF 工具在线 PDF 工具
费用永久免费订阅制免费/有限制
广告可能有
隐私本地处理视产品而定上传风险
功能深度编辑、OCR、结构分析功能全面基础功能
平台仅 Windows多平台跨平台

项目详细剖析

技术架构

核心组件

  • iText:.NET 组件,解析、生成、修改 PDF,嵌入 TTF 字体子集
  • MuPDF:C 语言库,渲染 PDF 为位图,通过 P/Invoke 调用(SharpMuPDF)
  • JBig2:JBIG2 图像编码/解码

其他组件:ObjectListView、FreeImage、Cyotek ImageBox、TabControlExtra、HTMLRenderer 等。

源码结构

PDFPatcher/
├── App/              # 主程序
│   ├── Common/       # 工具类
│   ├── Functions/    # 功能窗体和控件
│   ├── Lib/          # 第三方组件
│   ├── Model/        # 高级模型
│   ├── Options/      # 程序选项
│   └── Processor/    # PDF 处理算法(含 Mupdf P/Invoke)
├── JBig2/            # JBIG2 编解码
├── doc/              # 使用文档
└── 使用手册.docx

特色功能说明

书签编辑器:支持正则表达式和 XPath 匹配,可快速选择篇、章、节书签,自动生成文档书签。

OCR 识别:调用 Microsoft Office 的 MODI(Document Imaging)组件,识别图片中的文字,将图片 PDF 目录页转换为可点击书签。

字体替换与嵌入:替换文档字体;嵌入字库到 PDF,解决 Kindle 等无字库设备的乱码问题。


项目地址与资源

官方资源

适用人群

  • 电子书整理、扫描 PDF 处理
  • 需要解除 PDF 限制的用户
  • 需要批量合并、拆分、提取页面的用户
  • 需要 OCR 和字体嵌入的用户
  • PDF 格式爱好者、开发者

欢迎来我中的个人主页找到更多有用的知识和有趣的产品