9j5b 打开下载页后,在「输入密码」框里填这 4 位,再点它下方的按钮即可下载,不用注册、不用登录。

主界面:三个文件已排入待合并列表(这张图是直接用资源管理器右键多选送进来的)
这个工具解决什么问题
日常发资料经常遇到这种活:一份合同正文、几张发票、几个附件,对方要一个 PDF,你得把七八个文件合成一个。在线合并站的做法是先把文件传到它的服务器上,合同和身份证扫描件这种内容很多人不愿意传;就算愿意传,免费额度通常限制在 20 MB 或 2 个任务,超过就排队、加水印。用 Word 打开再另存为 PDF 更麻烦,页面尺寸和字体在两次转换之间容易走样。
- 原来的做法:找在线合并网站 → 逐个上传 → 等排队 → 下载回来还带水印,敏感文件干脆不敢传
- 用这个工具:文件拖进窗口(或者选中多个文件点右键)→ 点「开始合并」→ 结果落在源文件旁边
- 省下来的:不用上传下载、不用注册、没有文件数量和体积的额度限制,100 MB 级的文件也在本机直接跑完
技术实现
Windows 桌面程序,.NET Framework 4.8 + WinForms 界面,PDF 处理用 PdfSharp 做页面级搬运:把源文件的页面对象直接写进新文档,不做「渲染成图片再拼回去」这种二次压缩,所以原来的文字仍是文字、矢量图形仍是矢量、内嵌字体和超链接都保留,合并后不会变糊。
- 页面级合并而不是重绘:以
PdfDocumentOpenMode.Import打开源文件,再用outDoc.Pages.Add(src.Pages[i])把页面对象搬进新文档,全程不经过位图化,因此 5 页扫描件合并后仍是原来的清晰度 - 页码范围按文件独立设置:列表里每行一个「页码范围」单元格,支持
1-3,7这种混合写法,解析后展开成页号数组,留空表示整份取用 - 加密文件先判后放:先按 PDF 规范尝试打开,打不开时再扫描文件头尾的
/Encrypt标记来判定是不是加密文件,然后弹窗列出文件名与原因,由你选择跳过继续还是取消,不会闷头跑完才发现少了几页 - 合并过程在后台线程:界面线程只做进度刷新,大文件时窗口不卡死,进度条按已处理的文件数计算
- 资源管理器右键菜单:写
HKCU\Software\Classes下的静态注册表动词,免管理员权限、不用注册 COM 组件;多选文件时靠单实例转交(WM_COPYDATA)把所有路径汇进同一个窗口 - 输出路径有兜底:默认取列表第一个文件名加
_合并.pdf落在同一目录,目标已存在时先弹确认框问要不要覆盖,不会静默盖掉上次的结果
操作教程
- 第 1 步:把 PDF 放进列表:点工具栏「添加PDF」多选,或者直接把文件从资源管理器拖进窗口;也可以按住 Ctrl 选中多个 PDF,点右键选「百业PDF大师 → 合并PDF..」,软件打开时文件已经在列表里了 预期:列表按顺序显示每一行的文件名、页数、大小
- 第 2 步:调整顺序:选中一行,用工具栏的「上移 / 下移 / 置顶 / 置底」,也可以直接用鼠标按住那一行往上或往下拖 预期:行位置即时变化,合并顺序就是列表从上到下的顺序
- 第 3 步:只取部分页(可选):在「页码范围」列双击,填
1-3,7这样的范围,逗号分隔、可混写单页和区间;留空表示这个文件全部页都要 预期:该行页数列会跟着显示实际取用的页数 - 第 4 步:确认输出路径:「输出文件」默认是第一个文件名加
_合并.pdf,点「浏览」可以换目录或改名 预期:已有同名文件时会先弹确认框问是否覆盖 - 第 5 步:点「开始合并」:合并期间进度条走动,窗口仍可操作;遇到加密文件会弹窗询问 预期:完成后顶部弹出「合并完成:N 个文件,共 M 页」
- 第 6 步:取结果:到输出路径拿合并好的 PDF;想核对某一份原件,双击列表里的行就会用系统默认阅读器打开它 预期:结果文件可以正常打开,页码连续


列表操作快捷键:Delete 移除选中的行、Ctrl + A 添加文件、双击行打开该文件。第一次用想开右键菜单,点工具栏「右键菜单」按钮即可集成,再点一次选移除就能清理干净。
常见问题
软件截图

多选三个 PDF 从右键菜单送进来,只弹出一个窗口,三个文件全部在列表里

遇到读不了的加密文件时先问一句,不会静默丢页

合并完成后顶部提示文件数与总页数,结果落在源文件目录
技术实现与后续维护
程序集 by.pdf.merger,单文件发布,依赖(PdfSharp、界面库、授权组件)已合并进 exe,随包只有一份 cfg.ini 配置。运行环境是 .NET Framework 4.8,Windows 10/11 一般已经具备。授权与试用计时按机器码在本机完成,不上传文件内容,也不读取文件之外的个人数据。
后续可扩展的方向:批量给合并结果加水印、合并前统一删除指定页、输出时顺带做一次体积压缩、把常用页码范围存成模板。这些都在现有页面对象树的处理链路上,不需要改动界面结构。
可以定制(二次开发)
这个工具按「一个痛点一个小工具」的思路做,界面和功能都可以按你的实际流程改:比如固定输出目录、按日期自动命名、合并完自动发到指定文件夹、加一层公司水印规则,或者换成批处理式的一次跑完上百组。需要改动的联系方式见站内「联系我们」页面的 QQ 客服,也可以在本文下方留言说明场景。定制合作会连同可编译的源码一起交付。
使用说明与免责声明
请只对你拥有合法权利的文件进行合并、拆分等操作。合并按「读源文件、写新文件」的方式工作,不会改动任何源文件;但输出路径如果和已有文件重名,确认后会被覆盖,重要资料建议先备份或换一个输出目录再处理。本工具按「现状」免费提供,因使用本工具造成的数据损失,作者不承担责任。
9j5b 打开下载页后,在「输入密码」框里填这 4 位,再点它下方的按钮即可下载,不用注册、不用登录。
