PDFCraft 是一个完全在浏览器端运行的、隐私优先的 PDF 工具包
PDFCraft 是一个完全在浏览器端运行的、隐私优先的 PDF 工具包,提供了 90 多种专业 PDF 处理功能。
本教程将覆盖从源码安装、Docker 部署到生产环境静态部署等多种方式,以满足不同用户的需求。
📥 方式一:从源码运行(开发环境)
这种方式适合开发者进行本地开发、测试或二次定制。
1. 环境准备
- Node.js:版本要求 18.17 或更高。
- 包管理器:
npm、yarn或pnpm。
2. 克隆并安装依赖
1 | git clone https://github.com/PDFCraftTool/pdfcraft.git |
3. 启动开发服务器
1 | npm run dev |
启动成功后,在浏览器中打开 http://localhost:3000 即可访问应用。开发模式支持热重载。
🐳 方式二:使用 Docker 部署(推荐)
Docker 提供了最便捷的部署方式,尤其适合生产环境或不想配置 Node.js 环境的用户。
1. 使用预构建镜像(最快捷)
项目提供了 GitHub Container Registry (GHCR) 的预构建镜像,可以直接拉取运行:
1 | # 拉取最新镜像 |
运行后,访问 http://localhost:8080 即可使用。
2. 使用 Docker Compose 构建并运行
如果你想从源码构建镜像或进行自定义,可以使用项目提供的 docker-compose.yml:
1 | # 克隆仓库(如果尚未克隆) |
- 开发模式(支持热重载):
docker compose --profile dev up - 生产模式访问地址:
http://localhost:8080
🌐 方式三:静态站点部署(适用于生产环境)
PDFCraft 被配置为静态导出 (output: 'export'),这意味着你可以将其部署到任何支持静态网站托管的平台,无需 Node.js 服务器。
1. 构建静态文件
1 | npm run build |
此命令会在项目根目录生成一个 out 文件夹,其中包含了所有静态资源(HTML, CSS, JavaScript, WASM 文件等)。
2. 部署到目标平台
你可以将 out 文件夹的内容部署到以下任意平台:
| 平台 | 部署方式 |
|---|---|
| Vercel(推荐) | 直接连接 Git 仓库,或使用 CLI:vercel --prod |
| Netlify | 拖拽 out 文件夹到 Netlify Drop,或使用 CLI:netlify deploy --prod --dir=out |
| GitHub Pages | 推送代码到 main 分支,项目已包含 GitHub Actions 工作流自动部署 |
| Cloudflare Pages | 使用 CLI:wrangler pages deploy out |
| Apache / Nginx | 将 out 文件夹内容上传到 Web 服务器的根目录。项目已包含安全头配置示例(.htaccess 和 nginx.conf) |
重要提示:
子路径部署:如果你希望将应用部署在子路径下(如
https://your-domain.com/pdfcraft/),需要在构建时通过BASE_PATH环境变量指定,例如:1
BASE_PATH=/pdfcraft npm run build
WASM 支持:所有部署配置文件均已包含 WebAssembly (WASM) 文件的正确 MIME 类型设置,确保 PDF 处理功能正常工作。
🔌 可选:部署为 Tauri 桌面应用
PDFCraft 还支持使用 Tauri 构建为跨平台桌面应用(在 src-tauri 目录)。构建桌面应用需要安装 Rust 工具链,并遵循 Tauri 的构建指南。
💡 关键要点与提示
- 隐私保护:PDFCraft 的核心优势是完全在浏览器端处理,文件不上传任何服务器,非常适合处理敏感文档。
- 功能完整:部署后的应用包含 90+ 工具,涵盖合并、分割、转换、编辑、安全和 OCR 等。
- 工作流编辑器:项目包含一个可视化工作流编辑器(Beta),支持拖拽式创建自动化 PDF 处理管道,并内置了 23+ 模板。
- 多语言支持:应用内置了 13 种语言界面,会根据浏览器语言自动切换或由用户选择。
如果在部署中遇到问题,可以查阅项目根目录下的 DEPLOYMENT.md 文件或提交 GitHub Issue。希望这份指南能帮助你顺利部署和使用 PDFCraft。



