ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

PDFPatcher:面向合并拆分、书签与提取图片的免费无广告PDF工具箱

PDFPatcher:面向合并拆分、书签与提取图片的免费无广告PDF工具箱

PDFPatcher:面向合并拆分、书签与提取图片的免费无广告PDF工具箱

【免费下载链接】PDFPatcherPDF补丁丁——PDF工具箱,可以编辑书签、剪裁旋转页面、解除限制、提取或合并文档,探查文档结构,提取图片、转成图片等等项目地址: https://gitcode.com/GitHub_Trending/pd/PDFPatcher

PDFPatcher(PDF补丁丁)是基于 .NET Framework 4.0–4.8 用 C# 编写的 PDF 工具箱,许可为 AGPL 加开发者自拟的“良心授权”:对最终用户永久免费,无广告,不采集隐私数据。读完本文,你能独立完成一次文档处理任务、说清许可协议的每条义务,并找到二次开发的源码入口。

定位:它和收费方案差在哪

给三百页的扫描件补书签、去除复制打印限制、统一页面尺寸,这些需求在商用 PDF 软件里常被放进付费版或订阅层级,按版本做功能分级。它把上述功能一次性全部开放:没有付费分级,没有订阅。README 的原话是“永久免费,绝不过期,无广告,无弹出废话对话框,不窥探隐私”,唯一附加条件是“良心授权”条款,具体条文见下文“许可与义务”一节。

PDFPatcher 主界面:顶部菜单与工具栏集中了处理文件、合并文件、提取页面、提取图片等入口,中部是源文件及属性列表,下方为“PDF 信息文件”与“输出 PDF 文件”两个路径栏

能力地图:一张表看懂

功能一句话说明典型场景
合并与拆分多个 PDF 或图片合成一份文件,可统一页面尺寸,保留或按文件名重建书签整理论文、扫描件合集
页面提取与重排按页码范围抽取或删除页面、调整页面顺序、旋转页面清理收到的多文档
书签生成与批量编辑自动识别标题生成多级书签,支持正则与 XPath 匹配,批量修改颜色、样式、目标页制作电子书、扫描件编目
限制与清理去除复制、打印限制,清理隐藏冗余数据,删除自动打开动作文档二次分发
图片处理无损导出内嵌图片,或将整页渲染为图片资料存档、设计取图
OCR 识别调用 Office Document Imaging(MODI)组件识别图片文字,结果可写回文档扫描件数字化
字体替换与嵌入替换文档字体并嵌入字库子集,消除无字库设备上的乱码跨设备阅读
文档结构探查树视图查看 PDF 节点、编辑节点、导出结构 XMLPDF 结构调试

各功能的算法代码集中在App/Processor/,对应的界面窗体在App/Functions/。

10 分钟跑通第一个任务

标准流程走一次“信息文件”(XML)中转:

  1. 启动程序,点“添加文件”把源 PDF 放入文件列表,列表同步显示页数、标题、作者等元数据;
  2. 在“PDF 信息文件”处点“浏览…”指定 XML 保存位置,再点“导出信息文件”,得到一份可用文本编辑器修改的文档数据文件;
  3. 用文本编辑器改 XML——书签、页码、阅读器设置都在其中——然后在“输出 PDF 文件”处指定最终路径;
  4. 点击“生成 PDF 文件”,完成第一次处理。

捷径:只想合并几个文件时,直接点工具栏“合并文件”,跳过信息文件环节。全部选项的说明以官方手册 doc/使用手册.md 为准。

依赖、环境与容易踩的坑

  • 运行环境:Windows 7 及以上、.NET Framework 4.0 到 4.8;它是便携软件,解压后运行PDFPatcher.exe即可,删除目录即卸载。
  • OCR 依赖:“识别图像文本”依赖 Microsoft Office 2003 或 2007 的 Document Imaging 组件(MODI),未安装该组件则此功能不可用;识别语言还需与已装语言引擎匹配(简体中文、繁体中文、英文)。
  • 单实例与命令行:程序用Mutex保证单实例,主窗口已打开时再次带参启动,参数会交给已运行窗口接收,不会另起新会话;按住Ctrl可强制打开新窗口。
  • 大文档技巧:它对超过 2G 的文档可读可改;数百页文档建议走信息文件两步走——先导出 XML,在文本编辑器分段调整,再回写。自动生成书签时先缩小“识别页码范围”试匹配、核对层级,再跑全文。
  • 图片方向:合并图片时勾选“自动旋转页面适应原始内容纵横方向”,避免横图在纵页上留白。

“自动旋转页面”选项对比:未选中时横向图像在纵向页面上下留白,选中后页面自动转为横向以适配图像方向

相关选项项可在 doc/使用手册.md 的“合并文件”章节查到。

许可与义务

  • 使用义务:软件对最终用户免费;若软件帮助了你,每使用后“应行一善事”,协议原文对行与不行的措辞是“全在于您的良心”,无强制手段。
  • 源码二次开发:可以用源代码开发应用程序(自由、共享或商用);若开发的软件产生销售收入,须将该销售收入不低于千分之一(0.1%)的金额捐赠给社会弱势群体。
  • 分发限制:分发必须提供完整版本,未经许可不得修改程序本体及其安装程序,不得更改授权协议;把软件附入商业产品或宣传活动,需取得著作权人书面许可。
  • 基础条款:因含 AGPL 的第三方组件(iText、MuPDF 等),软件与源代码以 AGPL 为基础。

条文原文见 授权协议.txt。

参与入口

  • 新增页面处理器:在App/Processor/ContentProcessors/下新建类并实现页面处理接口,即可挂进文档处理流水线;
  • 新增界面:在App/Functions/下添加功能窗体或控件;
  • 反馈:通过开源平台的 issue 提交建议,附上版本号、截图和最小化示例文件。

克隆命令:git clone https://gitcode.com/GitHub_Trending/pd/PDFPatcher。构建推荐 Visual Studio 2022 或更新版本,勾选“.NET 桌面开发”与“C++ 桌面开发”两个工作负载,后者用于编译 JBIG2 编码组件;若提示“面向不再受支持的 .NET Framework”,把目标框架改为 .NET Framework 4.8 即可。目录结构详见 README 的“源代码的结构”一节。

行动清单

  • 通读 doc/使用手册.md,再打开程序对照界面逐一核对工具栏入口
  • 用自己的文档完整跑一遍“导出信息文件 → 修改 XML → 生成 PDF 文件”
  • 浏览App/Processor/,弄清每个处理器的职责边界
  • 二次开发前先读 授权协议.txt 全文,确认分发与捐赠义务

【免费下载链接】PDFPatcherPDF补丁丁——PDF工具箱,可以编辑书签、剪裁旋转页面、解除限制、提取或合并文档,探查文档结构,提取图片、转成图片等等项目地址: https://gitcode.com/GitHub_Trending/pd/PDFPatcher

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进