PDF Toolkit
基于浏览器的 PDF 合并、拆分、整理、转换与压缩工具套件,文件始终保留在您的本地设备上。
Next.js 16
React 19
Tailwind CSS 4
pdf-lib
PDF.js
Ghostscript (WASM)
dnd-kit
JSZip

概览
PDF Toolkit 是针对 iLovePDF 等工具的客户端替代方案。它涵盖了人们日常所需的各类 PDF 处理任务,包括合并文件、提取页面、重新排序与旋转、与图像互相转换以及压缩,且所有操作完全在浏览器内运行。无需上传任何文件。营销网站与工具目录置于一系列实时工作区前端,每个工作区都是一个独立的工具。
问题
市面上主流的在线 PDF 工具运行模式基本一致:将文档上传到服务器,处理完成后再下载结果。对于简单的图片格式转换,这毫无问题;但如果是已签署的合同、证件扫描件、医疗单据或财务报表,这就意味着要将高度敏感的文件交给第三方,并寄希望于他们的文件留存政策。开发一款能处理相同任务但将所有文件保留在用户本地机器上的工具,存在明确的市场空白。
我的角色与方法
我独立构建了整套产品:营销网站、工具目录以及每个实际可用的工具。核心决策在于架构层面:将所有实质性的 PDF 处理工作全部放在浏览器中执行。这一决定驱动了后续的一切设计,因为客户端处理意味着无需运维服务器、无单文件处理成本,并能明确给出隐私保证:您的文件绝不会被发送到任何地方。
技术栈
主要功能
图集


挑战与解决方案
“无服务器架构”的难点在于浏览器必须承担服务器常规负责的所有工作。我将任务分派给两个引擎处理:pdf-lib 负责重构文档内部结构的结构性编辑,而 PDF.js 则负责页面展示或转换为图片时的所有渲染工作。
压缩功能是其中的核心难点。真正的 PDF 压缩通常依赖 Ghostscript,这是一款运行在服务器上的重型原生工具。为了兑现隐私承诺,我采用了 Ghostscript 的 WebAssembly 版本,使同一引擎能够直接在浏览器本地运行。既实现了真正的压缩效果,又无需上传任何文件。页面与文件的重排需要给人流畅自然的实体操控感而非繁琐操作,因此我使用 dnd-kit 实现了丝滑的拖拽排序体验,并使用 JSZip 将多张图片导出打包为单个 ZIP 文件,避免触发十几个独立的下载任务。
成果
结果是一个完整的类似 iLovePDF 的工具集,除了静态分发之外,无需后端,无需文件存储,也没有托管成本,同时提供了现有解决方案无法提供的东西:文档绝不会离开设备的可靠保证。这是一个真正有用的工具,展示了现代浏览器可以承担多少繁重的工作。