
一个隐私优先、完全在客户端运行的 PDF 工具包,支持自托管部署,用户可直接在浏览器中完成 PDF 的合并、拆分、编辑、转换、加密等操作。其最核心的设计理念是:所有处理均在本地浏览器中完成,文件永远不会上传至任何服务器。
目前,已提供 超过 100 种PDF 处理工具,涵盖转换、编辑、合并、分割、安全等全方位功能。


采用纯客户端架构,整个应用没有后端服务器、没有 API 接口、没有数据库——所有处理都在浏览器中完成。
2.1 技术栈
| TypeScript | ||
| Vite | ||
| Vue | ||
| Tailwind CSS | ||
| Nginx | ||
| Docker | ||
| VitePress |
项目还使用 ESLint、Prettier 进行代码质量管控,使用 Vitest 进行单元测试。
2.2 双层 PDF 处理架构
采用双层架构来平衡初始加载体积与功能丰富度:
第一层——核心库(始终加载,约 2-3MB):
pdf-lib:PDF 合并、拆分、加密/解密等核心操作
jspdf / pdfkit:PDF 生成与创建
pdfjs-dist:PDF 渲染与查看
第二层——WASM 模块(按需从 CDN 加载,初始体积 0MB):
Ghostscript:PDF/A 转换(支持 1b、2b、3b 标准)、字体转轮廓
PyMuPDF:OCR 文字识别、高级数据提取
QPDF:PDF 线性化、损坏 PDF 修复
LibreOffice:Office 文档(DOCX、XLSX、PPTX)与 PDF 互转
这种设计的优势在于:用户不使用高级功能时,无需加载庞大的 WASM 文件,大大提升了首屏加载速度。
2.3 多页面应用结构
Vite 将 100 多个 HTML 页面作为独立入口构建,每个工具页面均可直接访问(如 /merge-pdf.html 或 /de/merge-pdf.html),并通过构建后脚本生成 13 种语言的本地化版本。

提供覆盖 PDF 全生命周期的工具集:
组织与管理:合并、拆分、页面重排/旋转/提取/删除、N-Up 排版、PDF 小册子制作、添加/提取附件等。
编辑与修改:PDF 编辑器(批注、高亮、密文、添加形状/图像)、创建/填写可填写表单、添加页码/Bates 编号/水印/页眉页脚、裁剪、倾斜校正、字体转轮廓、颜色调整、展平表单、书签编辑等。

转换为 PDF:支持图像(JPG/PNG/WebP/SVG/TIFF/PSD/HEIC 等)、Office 文档(Word/Excel/PowerPoint)、电子书(EPUB/MOBI/FB2)、Markdown/文本/JSON/XML、邮件(EML/MSG)等数十种格式转 PDF。

从 PDF 转换:PDF 转图像、SVG、CBZ、文本、JSON、CSV、Excel,以及 OCR 识别。

保护与优化:压缩、加密/解密、数字签名(X.509 证书)、权限管理、密文处理、元数据编辑/移除、线性化、修复损坏 PDF 等。

自动化:PDF 工作流构建器——通过可视化节点编辑器构建自定义 PDF 处理管道。


4.1 在线使用(无需安装)
直接访问官网,从工具目录中选择所需功能即可使用——无需注册、无文件数量限制、完全免费。
4.2 自托管部署
支持多种自托管方式:
方式一:Docker 快速启动(推荐)
bash
docker run -p3000:8080 ghcr.io/alam00000/bentopdf-simple:latest
然后在浏览器中访问 http://localhost:3000 即可使用。
方式二:Docker Compose
创建 docker-compose.yml 文件:
yaml
services:bentopdf:image: ghcr.io/alam00000/bentopdf-simple:latestcontainer_name: bentopdfports:-'3000:8080'restart: unless-stopped
执行 docker-compose up -d 启动服务。
方式三:静态托管
可部署在任何静态 Web 服务器上(Netlify、Vercel、GitHub Pages、Cloudflare 等),也可以从源码构建后自行托管。
方式四:隔离网络部署
对于政府、医疗、金融等无互联网访问的环境,项目提供了 prepare-airgap.sh 自动化脚本,可一键生成包含所有 WASM 模块的自包含部署包。
4.3 两种构建版本
| 自托管构建 | ghcr.io/alam00000/bentopdf-simple:latest | |
| 商业构建 | ghcr.io/alam00000/bentopdf:latest |
两者在 PDF 功能上完全一致,区别仅在于界面是否包含营销内容。

在安全方面有诸多设计:
零上传:所有文件处理在浏览器本地完成,文件永不离开用户设备
非 root 运行:Docker 容器使用
nginx-unprivileged用户运行,遵循最小权限原则数字签名:私钥永不离开浏览器,支持 X.509 证书(PFX/PEM)
合规性:纯客户端架构天然符合 GDPR/CCPA/HIPAA 等数据保护法规要求
可配置 WASM 来源:高级用户可自定义 WASM 模块的加载地址,支持完全离线部署

PS:仅供学习,侵权立删。

https://www.bentopdf.com/

C#开发的PDF工具箱,可以编辑书签、剪裁旋转页面、解除限制、提取或合并文档等,功能强大,完全开源






夜雨聆风