PDF补丁丁:批量救活失效书签、合并PDF的免费工具箱
【免费下载链接】PDFPatcherPDF补丁丁——PDF工具箱,可以编辑书签、剪裁旋转页面、解除限制、提取或合并文档,探查文档结构,提取图片、转成图片等等项目地址: https://gitcode.com/GitHub_Trending/pd/PDFPatcher
把PDF一改名,书签全失效,点一下就弹"无法打开文档";有的文档一打开还自己弹出网页。市面上的PDF工具要么要登录,要么收费,PDF补丁丁(PDFPatcher)就是冲着这类小毛病来的:一个免费、便携(Portable)、无需安装的PDF工具箱,批量修书签、合并拆分文档、解除限制、无损提取图片,全程离线完成,没有广告和弹窗。
第一次打开
系统要求很低:Windows 7 以上,装了 .NET Framework 4.0 到 4.8 就能跑,不需要管理员权限。它是绿色便携程序,把压缩包解压到任意目录,双击PDFPatcher.exe直接启动;想卸载就删掉整个目录。
第一次出结果的完整路径:主界面工具栏点"处理文件"进入处理界面 → 用"添加文件"按钮(或从资源管理器直接拖拽)加进一个PDF → 在文件列表的"标题"列点一下改个文字 → "输出 PDF 文件"处用"浏览..."指定输出位置 → 点"生成 PDF 文件"。新文件出现后收工:标题属性变了,原文件保持不动。
能干哪些活
把改名后失效的书签救回来
书签用"打开外部文件"动作指向自己,文件名一改,整份目录全部点不开。
用"编辑书签"打开这个PDF,展开书签能看到动作列写着"打开外部 PDF 文档"。Ctrl+A 全选,勾上"修改操作包含未选中的内部书签",在"修改"菜单里选"强制设置为文件内链接",所有书签动作就变成"转到页面"。点"补丁"按钮选定输出路径,新文件里书签恢复跳转。如果书签整体偏了一页,全选后在同一菜单里选"增加页码",把目标页码统一加 1。
把一堆散图拼成一本PDF
手里有 JPEG、PNG、TIFF 和几个PDF,想合成一本电子书。点工具栏"合并文件",把图片和PDF混着加进列表,每张图自动变一页;整目录导入用"添加文件夹",子文件夹会变成层级书签。只想合并某文档第 5~20 页,双击列表里那个PDF,在弹出的源文件选项里改页码范围,填"10-1"还支持逆序插入。"书签文本"列不填时程序按文件名自动生成书签,工具栏的 B、I 和调色板可以调样式。
解除限制、清理文档杂项
文档复制打印受限,或一打开就自动执行动作、弹网页。走"独立补丁"模式处理:在"PDF 文档选项"的"压缩清理"选项卡勾选去除复制、打印限制,"文档杂项"里勾选删除打开文档时自动执行的动作;顺手可以勾"优化压缩黑白图片",用 JBIG2 算法压缩黑白图,压缩后文件没变小就保留原图。
无损导出文档里的原图
想把PDF里的图原质量抠出来。"提取图片"按PDF内部存储格式导出:JPEG 压缩的出 jpg,JBIG2 黑白图出 tif,Deflate 的出 png,文件名默认按四位数页码编号。遇到被工具切片的图片,勾"尝试合并相同页面的图片"拼回一张;导出后黑白颠倒的,勾"反转黑白图片的颜色"还原。
给扫描版文档补上目录
文档里有文字层但没书签:用"自动生成书签",按文本尺寸识别标题层次。纯扫描图:用"识别图像文本"识别目录页生成信息文件,记得勾"识别目录页的点分隔符",修正引擎把省略号认成句号的问题。在书签编辑器里核对页码后,在"PDF 信息文件"处指定这个信息文件,点"生成 PDF 文件"把修改补丁回文档。
PDF补丁丁导出信息文件后补丁生成新PDF
底层怎么搭的
核心是两个引擎分工:iText 这个 .NET 组件负责解析、生成、修改PDF和嵌入 TTF 字体子集,MuPDF 这个 C 语言库负责把页面渲染成位图,程序通过 P/Invoke(跨语言调用机制)调它的动态库。授权基于 AGPL 加一条"良心授权":使用后如有所获益应行一件善事;若用源码开发软件获利,需将销售收入不低于千分之一捐赠给弱势群体。文档数据全部在本地处理,不上网、不上传;唯一的外部依赖是文字识别功能需要微软 Office 2003/2007 的 MODI(文档影像)组件,同样是离线调用。
熟练之后
- 批量处理时,在"输出 PDF 文件"输入框里点右键插入替代符:
<源文件名>、<作者>、<源目录名>会被自动替换,比如写<源目录路径><标题>让输出按文档标题命名。 - 书签编辑器搜索替换支持正则和 XPath:用
子书签([0-9]+)定位后以$1)子书签替换,把编号提到文本前面;XPath 还能按页码条件选中书签,如@页码 >= 5 and @页码 <= 10。 - 合并大批图片或文件时,用排序菜单的"按数值和字母顺序排序",1.tif、2.tif、10.tif 会按数值排成 1、2、10;按字母序排则变成 1、10、2。
- 批量改书签时,按住 Shift 再点编辑命令,本次操作临时作用于书签内部的子书签,不用每次去勾复选框。
参与进来
源码结构一句话带过:App/是主程序(Common 工具类、Functions 功能窗体、Processor 处理算法、Model 数据模型),doc/放使用文档,最完整的一份是使用手册。开发环境按 CONTRIBUTING.zh-CN.md 配置:建议 Visual Studio 2022,装".NET 桌面开发"和"C++ 桌面开发"两个工作负载;遇到"面向不再受支持的 .NET Framework"提示,把目标更新为 .NET Framework 4.8。提 Issue 的最低门槛:注明版本号、附截图和复现步骤,附件别超 10M,PDF 可以先用"提取页面"挑几页代表性页面。想读源码的话本地拉一份:git clone https://gitcode.com/GitHub_Trending/pd/PDFPatcher。
先从手头一个书签失效的文档开始:用"编辑书签"打开,全选后"强制设置为文件内链接",补丁生成新文件再逐条点开验证,三分钟能看到结果。卡住了先去仓库 Issue 区搜搜同类问题,没有就新开一个,把版本号和截图带上。
【免费下载链接】PDFPatcherPDF补丁丁——PDF工具箱,可以编辑书签、剪裁旋转页面、解除限制、提取或合并文档,探查文档结构,提取图片、转成图片等等项目地址: https://gitcode.com/GitHub_Trending/pd/PDFPatcher
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考