乐于分享
好东西不私藏

一款隐私优先的 PDF 工具箱,支持编辑、转换、OCR,还能私有部署

一款隐私优先的 PDF 工具箱,支持编辑、转换、OCR,还能私有部署
项目概述

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

目前,已提供 超过 100 种PDF 处理工具,涵盖转换、编辑、合并、分割、安全等全方位功能

核心技术与架构

采用纯客户端架构,整个应用没有后端服务器、没有 API 接口、没有数据库——所有处理都在浏览器中完成

2.1 技术栈

类别
技术
用途
语言
TypeScript
 (~5.9.3)
类型安全的开发
构建工具
Vite
 (^7.1.11)
快速打包与开发服务器
前端框架
Vue
 (^3.5.26)
UI 组件与响应式
CSS 框架
Tailwind CSS
 (^4.1.14)
样式管理
静态服务
Nginx
 (unprivileged)
生产环境静态文件服务
容器化
Docker
多架构部署打包
文档
VitePress
 (^1.6.4)
项目文档生成

项目还使用 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
面向公众的 SaaS 部署,含完整营销页面

两者在 PDF 功能上完全一致,区别仅在于界面是否包含营销内容

安全与隐私

在安全方面有诸多设计:

  • 零上传:所有文件处理在浏览器本地完成,文件永不离开用户设备

  • 非 root 运行:Docker 容器使用 nginx-unprivileged 用户运行,遵循最小权限原则

  • 数字签名:私钥永不离开浏览器,支持 X.509 证书(PFX/PEM)

  • 合规性:纯客户端架构天然符合 GDPR/CCPA/HIPAA 等数据保护法规要求

  • 可配置 WASM 来源:高级用户可自定义 WASM 模块的加载地址,支持完全离线部署

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

https://www.bentopdf.com/

如有需要,欢迎留言讨论
END
一个纯粹的技术交流群,创建的初衷是方便大家的交流,同时也能资源共享,互相学习成长。需要的伙伴可以点击公众号菜单[联系进群]获取二维码,扫码进群。加的时候请备注自己的发展方向,方便更好的交流
推荐阅读

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

.NET8 免费开源跨平台在线考试系统,支持集团内各单位独立管理

基于C#的OpenClaw复刻的个人 AI 助手

有了这个远程桌面工具,谁还用向日葵、TODESK

一款.NET生态中强大的交互式数据可视化引擎

喜欢文章的话请
分享
收藏
在看
点赞