返回目录
开源项目自动化与 Agent 类新手

PDFCraft:完全在浏览器本地运行的隐私优先 PDF 工具箱(90+ 工具)

PDFCraft 是一套基于 Next.js 15 + WebAssembly 构建的浏览器端 PDF 工具集,文件不上传服务器、全部在本地处理,提供合并、拆分、压缩、转换、编辑、加密等 90+ 项工具,并附带可视化工作流编辑器(Beta)。采用 AGPL-3.0 许可证,支持静态导出部署到 Vercel、Netlify、GitHub Pages、Cloudflare Pages 或自托管 Docker + Nginx。

0 次阅读2026/09/10 发布
PDFCraft:完全在浏览器本地运行的隐私优先 PDF 工具箱(90+ 工具) 来源图片

社区作者 · zZz

它解决什么问题

PDFCraft 是一个面向隐私与性能设计的综合 PDF 工具套件。与多数在线转换器不同,它使用 WebAssembly 技术在你的浏览器内完成全部处理,文档不会离开你的设备,因此适合处理敏感资料。项目使用现代 Web 技术构建,提供接近原生应用的流畅体验。

【核心特性】

  • 100% 隐私:所有处理均在客户端完成,不向外部服务器上传文件。
  • 快速响应:由 Next.js 与 WebAssembly 驱动,性能接近原生。
  • 工具齐全:页面标题与工具清单标注 90+ 工具,About 段落中写为 80+(以来源文本为准)。
  • 现代 UI:基于 Tailwind CSS 的简洁、可访问、响应式设计。
  • 多语言:支持英语、西班牙语、法语、德语、葡萄牙语、日语、韩语和中文。

【工作流编辑器(Beta)】 来源明确标注该功能处于早期开发阶段,可能存在缺陷或功能不完整。它提供可视化画布,可将多个 PDF 操作串联成自动化处理流水线。

预置模板按类别分为:Common(Merge & Compress、Document Preparation、Split & Watermark、Batch Watermark、Report Assembly、Invoice Processing)、Conversion(Images to PDF、PDF to Images、Office to PDF、eBook to PDF、Photo Album Creator)、Optimization(Optimize for Web、Full Optimization、Grayscale & Compress、Archive Preparation)、Security(Create Secure PDF、Confidential Document、Unlock & Edit)。

访问方式:导航到 /workflow,或在导航菜单中点击 “Workflow Editor”。 配图 2 为工作流编辑器界面截图(Visual workflow editor with drag-and-drop interface)。配图 1 为 PDFCraft Logo。

  • 可视化节点式编辑器:拖放工具到画布并连线构建处理流水线。
  • 23+ 预置模板:如“Merge & Compress”“Secure PDF”“Document Preparation”等。
  • 保存与复用:可保存自定义工作流以便日后使用。
  • 实时校验:自动检查相连工具之间的格式兼容性。
  • 批量处理:同一工作流可处理多个文件。
  • 可折叠面板:折叠工具与库侧边栏以扩大画布空间。

【工具清单概览(来源分为六组)】

  • 组织与管理(27 项):PDF Multi Tool、Merge PDF、Split PDF、Extract Pages、Organize PDF、Delete Pages、Rotate PDF、Rotate by Custom Degrees、Reverse Pages、Add Blank Page、Divide Pages、N-up PDF、Combine to Single Page、Alternate Merge、OCR PDF、Add Attachments、Extract Attachments、Edit Attachments、View/Edit Metadata、PDF to ZIP、Compare PDFs、Posterize PDF、Grid Combine、PDF Booklet、PDF Reader 等。
  • 编辑与批注(19 项):Edit PDF、Sign PDF、Crop PDF、Edit Bookmarks、Table of Contents、Page Numbers、Add Watermark、Header & Footer、Invert Colors、Background Color、Change Text Color、Add Stamps、Remove Annotations、Form Filler、Form Creator、Remove Blank Pages、Deskew PDF、OCG Manager 等。
  • 转换为 PDF(22 项):Image/JPG/PNG/WebP/SVG/BMP/HEIC/TIFF/TXT/JSON/PSD/Word/Excel/PowerPoint/XPS/RTF/EPUB/MOBI/Markdown/Email/CBZ/DjVu to PDF。
  • 从 PDF 转换(13 项):PDF to JPG/PNG/WebP/BMP/TIFF、PDF to Greyscale、PDF to JSON/DOCX/PowerPoint/Excel、Extract Images、PDF to PDF/A、Extract Tables。
  • 优化与修复(8 项):Compress PDF、Fix Page Size、Page Dimensions、Linearize PDF、Repair PDF、Remove Restrictions、Rasterize PDF、Font to Outline。
  • 安全 PDF(6 项):Encrypt PDF、Decrypt PDF、Sanitize PDF、Flatten PDF、Remove Metadata、Change Permissions。

【技术栈】

  • 框架:Next.js 15(App Router);语言:TypeScript;样式:Tailwind CSS 4。
  • PDF 处理:PDF.js、pdf-lib、PyMuPDF(WASM)。
  • 状态管理:Zustand。

【部署形态】 项目配置为静态导出(output: 'export'),可部署到任何支持静态网站托管的服务,无需 Node.js 服务器。仓库内置 vercel.json、netlify.toml、.github/workflows/deploy.yml、public/_headers、docker-compose.yml + nginx.conf、.htaccess 等部署文件;安全与缓存响应头已预配置,静态导出使用 images: { unoptimized: true },所有部署配置均包含 WebAssembly 所需的 MIME 类型。

【来源与致谢】 项目在致谢中说明其受 BentoPDF 在隐私优先、客户端 PDF 工具方面开创性工作的启发,核心逻辑以其为重要参考;PDFCraft 针对 Next.js 生态重新实现,并扩展了工作流编辑器等独特功能。

— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。

安装 / 开始使用

以下步骤均来自项目 README,按原文顺序整理。

【一、本地运行准备环境】

  • Node.js 18.17 或更高版本

npm、yarn 或

可复制命令
pnpm

(三选一)

【二、本地开发安装步骤】

  1. 克隆仓库:
命令
git clone https://github.com/PDFCraftTool/pdfcraft.git
命令
cd pdfcraft
  1. 安装依赖:
命令
npm install

命令
yarn install

命令
pnpm install
  1. 启动开发服务器:
命令
npm run dev

命令
yarn dev

命令
pnpm dev
  1. 打开浏览器访问 http://localhost:3000 查看应用。

【三、Docker 部署】 项目同时提供预构建镜像与 Docker Compose 两种方式。 方式 1:使用预构建镜像(推荐)

命令
docker pull ghcr.io/pdfcrafttool/pdfcraft:latest
命令
docker run -d -p 8080:80 --name pdfcraft ghcr.io/pdfcrafttool/pdfcraft:latest

随后打开 http://localhost:8080 访问。可用镜像标签:latest(main 分支最新稳定版)、v1.0.0(按语义化版本号的具体版本)、sha-abc1234(具体提交)。 方式 2:使用 Docker Compose 从源码构建(需先克隆仓库)

命令
git clone https://github.com/PDFCraftTool/pdfcraft.git
命令
cd pdfcraft

开发模式(带热重载)

命令
docker compose --profile dev up

生产模式(静态构建 + Nginx)

命令
docker compose --profile prod up --build

开发模式地址:http://localhost:3000;生产模式地址:http://localhost:8080。停止容器:

可复制命令
docker compose down

【四、子路径部署(basePath 支持)】 如需部署在子路径下(例如 https://your-domain.com/pdfcraft/),必须在构建阶段指定 base path。

  • 使用 Docker 构建:
命令
docker build --build-arg BASE_PATH=/pdfcraft -t pdfcraft .

services: pdfcraft: build: context: . args:

  • 使用 Docker Compose:
可复制命令
BASE_PATH=/pdfcraft

environment:

可复制命令
BASE_PATH=/pdfcraft

注意:由于应用为静态导出,BASE_PATH 必须在构建阶段提供。

【五、可用脚本】

可复制命令
npm run dev:启动带 Turbopack 的开发服务器

,会自动执行 predev 解压 LibreOffice WASM 文件。

可复制命令
npm run build:构建生产版本

,会自动执行 postbuild 解压 out/ 目录中的 WASM 文件。

可复制命令
npm run start:启动生产服务器

可复制命令
npm run lint:使用 ESLint 检查代码

可复制命令
npm run test:使用 Vitest 运行测试

【六、生产部署】

步骤 1 · 构建项目:

可复制命令
npm run build

(所有静态文件生成在 out 目录)。

  1. 部署到目标平台:
  • Vercel(推荐):vercel --prod
  • Netlify:netlify deploy --prod --dir=out
  • GitHub Pages:推送到 main 分支(使用 GitHub Actions)
  • Cloudflare Pages:wrangler pages deploy out
可复制命令
Docker + Nginx:docker compose --profile prod up --build
  1. 部署后验证以下功能是否正常:多语言路由(如 /en、/zh)、工具页面加载、WebAssembly(PDF 处理)功能。

【七、常见问题与注意事项(来自 README)】

  • 首次运行 dev 或 build 时若缺少 WASM 文件,脚本会自动解压 LibreOffice WASM;如异常需检查 predev/postbuild 是否执行成功。
  • 子路径部署若未在构建阶段设置 BASE_PATH,页面资源会 404。
  • 若 PDF 处理功能不可用,优先检查部署环境是否正确提供 WebAssembly MIME 类型。
  • 工作流编辑器处于 Beta 早期开发阶段,可能遇到缺陷或功能不完整。

【八、参与贡献】 Fork 项目 → 创建特性分支(git checkout -b feature/AmazingFeature)→ 提交改动(git commit -m 'Add some AmazingFeature')→ 推送分支(git push origin feature/AmazingFeature)→ 发起 Pull Request。

来源教程配图

PDFCraft Logo
配图 1 · PDFCraft Logo查看原图
Workflow Editor Screenshot
配图 2 · Workflow Editor Screenshot查看原图

适用场景

在本地浏览器中合并
拆分
重排
旋转和删除 PDF 页面
文件无需上传服务器
对敏感合同
证件
财务资料进行压缩
加密
解密
脱敏(Sanitize)
移除元数据与权限设置