文字识别功能依赖 Microsoft Office 2003/2007 的 MODI 组件,新版 Office 不带;用 VS 编译时可能提示 .NET Framework 不再受支持,需把目标改为 4.8;软件采用 AGPL 加“良心授权”,商用或分发前需阅读授权条款。
PDFPatcher
wmjordan活跃维护国产 PDF 工具箱,能编辑书签、裁剪旋转页面、解除限制、提取合并文档、探查结构,还能把 PDF 转成图片或提取图片。
PDF补丁丁——PDF工具箱,可以编辑书签、剪裁旋转页面、解除限制、提取或合并文档,探查文档结构,提取图片、转成图片等等
下载并运行 PDF 补丁丁安装程序;从源码编译需 Visual Studio 2022 或更新版本,并安装“.NET 桌面开发”和“C++ 桌面开发”工作负载需 Windows 7 以上系统,安装 .NET Framework 4.0 到 4.8;README 未提及显存或 GPU 要求,文字识别功能需另装 Microsoft Office 2003/2007 的 Document Imaging 组件。
Windows 上的 PDF 工具箱,能改书签、剪裁旋转页面、解除限制、合并拆分和导出图片
国产 PDF 工具箱,能编辑书签、裁剪旋转页面、解除限制、提取合并文档、探查结构,还能把 PDF 转成图片或提取图片。
核心能力
- 带阅读界面的书签编辑器,支持正则和 XPath 批量改书签
- 合并 PDF 或图片时保留原书签并可自定义新书签样式
- 高速无损导出 PDF 内图片,也可把页面转成图片
- 替换并嵌入字体,消除复制乱码,便于 Kindle 阅读
- 以树视图分析文档结构,可编辑节点或导出 XML
容易踩的坑
- v1.1PDF 补丁丁 1.1.0最新正式版2025-02-01 · 2025-02-01 06:38 UTC
新增功能
- 可以按首页统一文档页面尺寸。
- 书签编辑器增加将下一个跳转目标的位置赋予上一个空跳转目标的书签功能。
修改功能:
- 新的 MuPDF 库。
- 通过首页的打开 PDF 文档连接可打开书签文件。
- 当右键点击书签编辑器的书签行时,整行均响应鼠标点击。
- 书签编辑器突出显示当前阅读器中的对应书签。
修复问题:
- 使用探查器分析内容流遇到异常内容将导致程序崩溃。
- 提取图片过程中可能会出现堆栈溢出错误。
- 无法提取某些图片。
- 打开未嵌入字体的文档可能会崩溃。
- 某些情况下没有正确设置输出图像的分辨率。
- 注册表字体信息键值为空导致程序崩溃。
- 无法在 Windows 10 上将程序添加到PDF文档的打开方式菜单。
- 相对路径合并错误。
- 在“关于程序”页面无法打开文档。
感谢各位网友对 PDF 补丁丁提供的反馈。 常怀感恩之心,勿以善小而不为。 祝各位新春快乐!
- v1.0.4PDF 补丁丁 1.0.42024-09-30 · 2024-09-30 12:58 UTC
查看更新说明
新增功能
- 允许替换批注或表单中的字体。
- 编辑器的阅读器增加移动书签栏光标的快捷键(Shift+光标键)。
- 结构探查器为批注和表单的内容流显示命令节点。
修改功能
- 书签编辑器完成页码编辑操作后,不再激活下一个书签的页码编辑框。
- 优化书签编辑器的显示。
- 增加文档结构探查器关于批注样式的信息项。
- 将全屏显示命令移到主菜单,并赋予快捷键F11,F12键切换书签栏的显示状态。
- 优化阅读器从右到左阅读时的翻页行为。
- 在编辑器点击保存按钮弹出对话框的确定按钮后,不再询问覆盖文档。
- 替换字体时保留原字体的宽度设置。感谢 @strnghrs 在替换字体功能上的支持和帮助。
- 文档结构探查器支持选择和修改更多类型的节点。
- 更新了组件库。
修复问题
- 拖放功能标签可能导致程序崩溃。
- 导出图片可能黑白反转。
- 文档命名树有错误导致文档无法打开。
- 将图片转换成黑白的有损压缩选项可能导致图像全黑。
感谢各位网友对 PDF 补丁丁提供的反馈。 常怀感恩之心,勿以善小而不为。 祝各位国庆快乐!
- v1.0.2PDF 补丁丁 1.0.22024-06-13 · 2024-06-13 12:20 UTC
查看更新说明
新增功能
- 书签编辑器增加阅读器翻页和插入书签的快捷键。
- 合并文件时自动向单页数 PDF 文件附加一空白页的选项。
- 新的应用程序图标!感谢 @MY1L 网友。
修改功能
- 点击编辑器“在此插入书签”命令后,键盘焦点处于书签文本框之内。
- 尽量使用相对路径保存信息文件中的PDF文档位置。
- 将保存选项融入保存 PDF 文件对话框,并优化该对话框的行为。
- 记住阅读器的缩放比例和翻页方向。
- 优化插入书签对话框的行为和布局。
- 增加插入书签的方式。
- 增加书签编辑器子菜单的快捷按键。
- 增加展开和折叠选中书签的功能。
修复问题
- 某些场合输出文件被错误放置到程序目录。
- 补丁文件的创建时间被覆写为当前时间。
- 嵌入字体时报错。
- 页面边框具有偏移值时编辑器渲染图片、文本边框和书签定位位置错误。
- 编辑器菜单选中状态不反映实际操作方式。
- 合并提取图片可能会导致颜色错乱。
- 拖放的书签可能会消失。
- v1.0.1PDF 补丁丁 1.0.12024-02-05 · 2024-02-05 02:19 UTC
查看更新说明
这是一个维护性的更新。主要是修复软件存在的问题,内容如下所示。
新增功能
提取图片功能增加仅提取页面可见图片的选项。
修改功能
- 恢复了在各功能输入文件框中自动填入文件名的行为。
- 导出信息文件时,为字体文件取更具体的名称。
- 提取图片功能默认剔除重复图片和隐藏图片。
- 在读取命名目标出错时,不抛出异常。
- 合并图片选中“将黑白图片设为透明”时,该选项应仅作用于双色图片。
修复问题
- 书签跳转目标错误导致无法打开文档。
- 混合合并图片和页面时,页面方向与尺寸错误。
- 无法移除某些签名保护。
- 文本异常导致程序崩溃。
- 合并图片时无法正常读取某些 JPEG 图片中的 EXIF 数据。
- 点击工具栏打开新功能时,在输入文件框中未自动填入文件名。
- v1.0PDF 补丁丁 1.02023-08-30 · 2023-08-30 03:08 UTC
查看更新说明
新增功能:
- 第一个开放源代码版本。
- 修改了授权协议。
- 合并图片功能使用 JPEG 图片 EXIF 旋转角度。
- 替换字体功能增加简单修改文本简繁体、全角半角转换的功能(用于处理一些旧的 PDF 文档)。
- 增加了合并文件功能的合并冗余数据选项(之前版本中,该选项的行为是默认行为,可能导致无法合并源文档的某些数据)。
- 合并文件功能支持在添加文件后再排序文件列表。
- 合并文件功能增加输出目标文件由多少个文件共多少页合并而成。
- 增加在使用过程中不再提示打开文档权限的操作办法。
- 编辑器允许保存和读取“自动生成书签”功能中的筛选条件,增加书签文本筛选条件。
- 编辑器的自动生成书签功能允许保留之前的书签。
- 拆分文档功能增加压缩选项。
- 记住窗口的位置。
- 合并文件功能增加添加文件夹时不导入子文件夹的选项。
- 增加将 PDF 文件转换为图片 PDF 文档的选项。
- 允许提取灰度图像掩膜。
- 增加合并图片时覆盖原图片分辨率的选项。
- 在补丁文件和重命名文件目标文件名增加“页数”文件信息替代占位符。
修改功能:
- 更新了 JBIG2 解码组件和 MuPDF 组件。
- 优化了 PDF 补丁丁的主程序代码。
- 不再支持 Windows XP、2003。
- 取消了对 XML 程序配置文件的支持(好几年前的版本已经转用 JSON 配置文件了)。
- 需要使用 .NET Framework 4.0 运行时(Windows 8 以上版本自带)。
- 删除了界面上的捐赠二维码。
- 优化高分辨屏幕下的界面显示。
- 从命令行打开文件时,如程序已在运行,则用该程序打开文档,并激活主窗体(按住 Ctrl 键可强制打开新程序窗口)。
- 优化了部分界面显示。
- 使用相对路径读写合并文件功能的文件列表。
- 调整识别文本功能默认的识别结果格式,在识别结果文件不是 XML 时给出提示。
- 提高导出图片功能对轻微格式错误的图片的兼容性。
- 提高文档结构探查器和文档处理器的容错能力。
- 合并文档使用上一页的尺寸作为空白页尺寸。
- 合并文档对话框在添加项后将焦点移动到文本列表框。
- 将编辑器的修改文档选项菜单项移到阅读器工具栏。
- 优化书签编辑器编辑多行书签的体验。
- 导出信息文件时支持导出文件流。
- 调整修改文档选项中替换字体选项的操作方式。
- 导出图片功能支持合成图片和掩膜成为新的透明图像。
修复问题:
- 书签编辑器页码、书签级别等数值或文本编辑框太窄。
- 合并文件功能在添加的目录存在无访问权限文件或子目录时导致程序崩溃。
- PDF编辑器有时无法用鼠标拖动文档。
- 导出信息文件的输出文件命名不正确。
- PDF编辑器无法打开带密码的文档。
- 导入多页TIF图片时所有页面全为第一页。
- 合并文件功能没有正常处理带调色板的图片。
- 打开破损PDF文档时会崩溃。
- 导入带控制字符的书签文件时会出错。
- 检查更新窗口在某些场合下会导致程序崩溃。
- 媒体框为负数时,PDF编辑器无法处理文本。
- 无法导出某些用 Deflate 压缩算法编码的图片。
- 拖放多个文档到程序窗口时,无法正常打开所有文档。
- 修改文档旋转页面时没有考虑原始页面的旋转角度。
- 合并部分无损压缩的 TIFF 图像到 PDF 文件时会选择有损 JPEG 格式。
- 替换字体功能不支持加载仅为当前用户安装的字体。
- 文件尺寸的数值错误。
- 导出带输出文本指令的信息文件存在内存漏洞。
- 提取页面功能在某些场合下会生成错误的文件。
- 字母形式的页码标签少了一位数值。
- 合并文件在读写文件列表时可能导致程序崩溃。
- 尝试复制识别失败页面文本时会导致程序崩溃。
- 生成书签功能“添加字体筛选条件”对话框在信息文件没有包含字体信息时会导致程序崩溃。
- 当主程序界面窗口显示不完整时切换功能页面时界面会冻结。
- 编辑器不支持空白页码标签。
- 在某些情况下会重复提取图片。
- 无法提取表单中的图片。
- 添加不存在的文件到重命名文件列表会导致程序崩溃。
- 合并文件功能自动旋转页面适应源图像尺寸选项无效。
- 点击生成书签功能“忽略文本”表头会导致程序崩溃。
- 提取页面功能保留书签的功能在勾选清理文档选项后会失效。
- 无法提取 JPEG 2000 格式图片。
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
PDF 补丁丁(PDFPatcher)
感谢您关注 PDF 补丁丁,请在使用软件或源代码前阅读本说明和授权协议。本软件及源代码采用 AGPL+“良心授权”协议——用户每次使用本软件后如有所获益,应行一善事;如使用源代码开发了新的软件并获得收益,应将收益中不低于千分之一的金额捐赠给社会的弱势群体。
功能简介
PDF 补丁丁是一个 PDF 处理工具。它具有以下功能:
- 修改 PDF 文档:修改文档属性、页码编号、页面链接;统一页面尺寸;删除自动打开网页等动作;去除复制及打印限制;设置阅读器初始模式;清理文档隐藏垃圾数据;重新压缩黑白图片;旋转页面。
- 贴心 PDF 书签编辑器:带有阅读界面(具有便于阅读竖排文档的从右到左阅读方式),可批量修改 PDF 书签属性(颜色、样式、目标页码、缩放比例等),书签可精确定位到页面中间;在书签中执行查找替换(支持正则表达式及 XPath 匹配、可快速选择篇、章、节书签),自动快速生成文档书签。
- 制作 PDF 文件:合并已有 PDF 文件或图片,生成新的 PDF 文件;合并后的 PDF 文档带有原文档的书签,还可挂上新书签(或根据文件名生成),新书签文本和样式可自定义;合并的 PDF 文档可指定统一的页面尺寸,以便打印和阅读。
- 拆分或合并 PDF 文件,并保留原文件的书签或挂上新的书签。
- 高速无损导出 PDF 文档的图片。
- 将 PDF 页面转换为图片。
- 提取或删除 PDF 文档中指定的页面,调整 PDF 文档的页面顺序。
- 根据 PDF 文档元数据重命名 PDF 文件名。
- 调用微软 Office 的图像识别引擎分析 PDF 文档图片中的文字;将图片 PDF 的目录页转换为 PDF 书签。识别结果可写入 PDF 文件。
- 替换字体:替换文档中使用的字体;嵌入字库到 PDF 文档,消除复制文本时的乱码,使之可在没有字库的设备(如 Kindle 等电子书阅读器)上阅读。
- 分析文档结构:以树视图显示 PDF 文档结构,可编辑修改 PDF 文档节点,或将 PDF 文档导出成 XML 文件,供 PDF 爱好者分析、调试之用。
- 永久免费,绝不过期,无广告,无弹出废话对话框,不窥探隐私。
授权协议
《PDF 补丁丁》软件(以下简称本软件)受著作权法及国际条约条款和其它知识产权法及条约的保护。 本软件对于最终用户免费。由于本软件使用了带有 AGPL 条款的第三方开源组件,因此,本软件及其源代码的使用协议也基于 AGPL。另外还带有如下附加条件。在遵守本软件的前提条件下,你可以在遵循本协议的基础上自由的使用和传播它,你一旦安装、复制或使用本软件,则表示您已经同意本协议条款。如果你不同意本协议,请不要安装使用本软件,也不应利用其源代码。
附加条件: 每一个使用本软件的用户,如果本软件帮助了您,每使用本软件后,您应当做 1 件善事。善事无分大小,有心则行。例如:
- 如果您的父母在身边,你可以为您的父母做一顿美味的饭菜,或者为他们按摩、洗脚;如果他们身处远方,你可以向他们发起通话,问候他们的健康和生活。
- 在大雨滂沱的时候,如果您有雨伞,可与同路的人共享;在烈日当空的时节,如果您看到环卫工人太阳下工作,您可以为他们买一瓶水送给他们;在拥挤的公共交通工具上,或在公共场合排队等候之际,如果您有座位,可以让给老人、孕妇或提着重物的人就坐。
- 您可以用您擅长的技能,为身边的人排难解困;您可以将您的知识,分享给其他人,让他们有所获益;您可以向比您困难的人捐资赠物。
- 如果您觉得这个软件真的好用,请将它的使用方法介绍给别人,让别人也通过使用本软件而得到好处;或者将其它您觉得好用的软件介绍给别人。
如果您无法做到使用本软件后做 1 件善事,请记在心中。在有机会的时候,多行善积德。本用户协议之遵循与否,全在于您的良心。是为“良心授权”。
相关定义:
- 软件:软件是指《PDF 补丁丁》软件以及它的更新、产品手册,以及在线文档等相关载体。
- 限制:你可以使用本软件的源代码开发应用程序(自由、共享或商用),也可以任意方式分发数量不限的本软件的完整拷贝,但前提是: ① 你分发软件时必须提供本软件的完整版本,未经许可不得对软件乃至它的安装程序做任何修改; ② 你分发软件时不能更改本授权协议; ③ 你如果在商业性宣传活动、产品中附加本软件,应当获得著作权人的书面许可; ④ 你如果利用本软件的源代码编写了其它软件,并且产生了销售收入,应当将该软件销售收入不低于千分之一的金额捐献给社会上的弱势群体。
- 支持:软件会由于用户的需求而不断更新,著作权人将提供包括用户手册、电子邮件等各种相关信息支持,但软件不确保支持内容和功能不发生变更。
- 终止:当你不同意或者违背本协议的时候,协议将自动终止,你必须立即删除本软件产品。
- 版权:本软件及源代码受著作权法及国际条约条款和其它知识产权法及条约的保护。
- 免责:对于本软件安装、复制、使用中导致的任何损失,本软件及著作权人不负责任。
常用的 PDF 开源组件简介
PDF 文档的规范(ISO 32000-1:2008 《Document management — Portable document format — Part 1:PDF 1.7》)可从网上找到,一般来说,它是 PDF 处理程序开发者的必读文献。
PDF 文档格式中涉及印刷领域的多项技术,并有其独特的文档结构,还使用了多种数据压缩算法。要从零开始编写 PDF 文档的处理程序,对于一般人而言,通常是困难而不太现实的。PDF 补丁丁使用 .NET Framework 开发,主要采用 iText 和 MuPDF 这两个开放源代码的组件库来处理 PDF 文档。
前者是 .NET 组件,与 PDF 主程序具有较好的互操作性,并且在解析、生成和修改 PDF 文档,以及嵌入 TTF 字体子集这些功能上,优胜于后者。
后者采用 C 语言开发并编译,与前者相比,其最大的优点是具有渲染 PDF 文档为位图的功能。MuPDF 编译出来的动态组件库可在作者另一个开放源代码库 SharpMuPDF 下载。PDF 补丁丁通过 P/Invoke 技术调用该组件库的功能。
除了 PDF 开源组件之外,程序还使用了其它优秀开源组件。例如 ObjectListView 这个强大的列表控件、FreeImage 来读取和解码各种类型的点阵图像文件、Cyotek 的 ImageBox 用于显示渲染好的 PDF 文档页面、TabControlExtra 用于构建选项卡式文档界面、HTMLRenderer 用于显示 HTML 网页界面等等。
源代码的结构
- App 目录:PDF 补丁丁主程序
- Common:一些常用的工具类
- Functions:用于呈现软件各类功能的窗体和控件
- Lib:程序使用的第三方组件
- Model:编辑文档时所用的高级模型(基础数据模型由 iText 和 MuPDF 的类实现)
- Options:程序的选项
- Processor:处理 PDF 文档的算法(其中 Mupdf 目录里放置了 P/Invoke 调用 MuPDF 的类)
- doc 目录:放置程序的使用文档
运行环境
- Windows 7 以上版本的操作系统。
- .NET Framework 4.0 到 4.8 版本。
- 使用文字识别功能需要安装 Microsoft Office 2003(或 2007)的 Document Imaging 组件(MODI)。
- 编译程序源代码,建议使用 Visual Studio 2022 或更新版本,并安装“.NET 桌面开发”(用于编译 PDF 补丁丁源代码)和“C++ 桌面开发”(用于编译 JBIG2 编码组件)两个工作负载。可能会遇到项目“面向不再受支持的 .NET Framework”、需要“将目标更新为 .NET Framework 4.8”的问题。简单方法是将目标更新为 .NET Framework 4.8,如不更新目标,请参考这篇文章介绍的方法。
联系作者
除第三方组件外,本软件的源代码完全开放:
https://github.com/wmjordan/PDFPatcher
https://gitee.com/wmjordan/pdfpatcher
建议通过开放源代码网站通过提交 issue 的方式提交您的建议或需求。因日常工作繁忙,暂不提供加 QQ 或微信咨询的服务,敬请谅解。
在邮件或消息中,请注明你的版本号,附上截图和附件,详细说明你遇到的问题。
如遇到需要提供附件的情况,请把它搞小一点。一般情况下,最好不要发送超过 10M 的附件。
- 对于 PDF 文件,可用“提取页面”功能提取有代表性的页面。
- 对于图片文件,请压缩源文件,或提供有代表性的一两页图片。