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

引言

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

这是「一天一个开源项目」系列的第 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 等。

源码结构

bash 复制代码
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 格式爱好者、开发者

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

相关推荐
Arya_aa2 小时前
Mysql数据库-管理和存储数据库(开源管理系统)与JDBC操作数据库步骤,JUnit以及如何将压缩包中exe程序添加上桌面图标
数据库·mysql·junit·开源
沐曦股份MetaX5 小时前
再升级!沐曦股份 GPU 接入华佗开源生态!
开源
aiAIman5 小时前
OpenClaw 生态主流 AI 模型真实性能 PinchBench深度解读(基于2026年3月12日测评数据)
人工智能·开源·aigc
IvorySQL7 小时前
官宣!全球 PostgreSQL 大神再度集结,HOW 2026 正式定档
数据库·postgresql·开源
一知半解仙9 小时前
AI视频生成真实能力解析
人工智能·智能手机·架构·开源
互联网散修9 小时前
鸿蒙应用开发UI基础第二十四节:构造Preferences用户首选项数据存储开源工具
开源·harmonyos·鸿蒙应用开发教程
Lethehong10 小时前
想掌握全球实时态势?手把手教你部署开源情报工具 World Monitor
人工智能·开源
bkspiderx10 小时前
MQTT 开源库:Eclipse Paho C 详解,特性、交叉编译与实战示例
c语言·mqtt·开源·eclipse paho c
饕餮争锋11 小时前
Supabase使用演示
后端·开源