PrintCraft 是一款纯 Rust 重写的开源 Adobe Acrobat 平替,PDF 的阅读、合并、拆分、加密、整理、批注、表单全套活儿都能干。它原生跑在 macOS、Windows、Linux 上,浏览器里也能用;主打隐私优先,无账户、无遥测、纯离线,并特别为 AI 代理设计了无界面操控能力。

核心亮点
- 烂文件容错:专门为损坏文件设计了容错机制,逐页独立隔离渲染与自动修复。在 983 个 pdf.js 官方测试文件中实现 0 崩溃,963 个干净打开渲染,958 个“打开-编辑-保存”往返成功。
- 渲染与排版:竖排日文、复杂文种、彩色表情符号、渐变、透明度、柔和蒙版均能按原作者预期呈现;大页面采用平铺分块渲染,放大再多倍文字依然保持边缘锐利。
- 搜索与阅读体验:支持边输入边检索全文档,能按真实阅读顺序选中文本,分栏排版、从右到左语言及中日韩均正常处理;书签、缩略图、页面标签辅助导航,并提供浅色/深色双主题。
- 页面整理像摆卡片:旋转、删除、插入空白页、跨文件插入及移动页面全程可视化;⌘Z 支持连续深度撤销,而且保存文件之后历史撤销依然有效;后台每分钟自动保存,意外退出后可从日志恢复。
- 合并拆分不丢东西:合并任意多份文档后,内部链接重新接回、表单字段保持可交互、图层记住开关状态、附件随页面转移;合并后的每一页均与源文件保持像素级一致。
- 保存:增量保存绝不动用原始字节、先写临时副本再进行原子替换,保存结果使用 qpdf 独立校验;加密文档在磁盘上始终保持加密状态。
- 安全能力:完整实现 PDF 标准安全处理程序全部修订版本,涵盖从 40 位 RC4 到 AES-256,全面支持用户/所有者密码体系及 SASLprep 规范化的 Unicode 密码。
- 代理无缝接管:所有引擎能力可通过 CLI、opt-in 的本地 MCP 服务器(默认关闭、不开放网络端口)和 Rust API 调用,甚至能通过
--control 参数让 AI 代理直接点击、拖拽并截图真实的桌面界面。
- 全平台原生支持:一份代码跨 macOS、Windows、Linux、FreeBSD 原生运行,Windows 覆盖 x64、x86 及经真实 ARM CI 测试的 ARM64,并支持 WebAssembly 编译进浏览器。
- 进度:官方自评目前约完成 Acrobat Pro 离线功能的一半,必备项完成 88%,但仅占整体约三分之一的工程量;渲染器暂借
hayro crate,全新自研渲染器、文本编辑与非拉丁 OCR 等仍在推进中。
上手
- 获取方式:项目已发布 v0.2.1,普通用户直接前往 GitHub Releases 页面下载对应系统的官方预编译安装包即可使用。
- 源码本地构建:开发者自备 Rust/Cargo 环境,克隆仓库后运行
cargo run --release -p printcraft -- some.pdf,一条命令即可在本地启动桌面应用并打开文档。
- 日文字体:源码构建时,界面日文及编辑日文 PDF 需要额外克隆
craft-fonts 仓库并配置 CRAFT_FONTS_DIR 环境变量;官方 Releases 发布版已默认内置该字体包,无需额外配置。
- 注意事项:
- 暂不可替代“完全体 Acrobat”:现有文本编辑(尤其 CJK 文本)、拉丁字母以外的 OCR、Office 文档导入导出、XFA 表单、签名时间戳与长期验证等高级功能尚在开发中。
- 恶意文件防范:目前模糊测试仍会在对抗性样本中暴露偶发崩溃或挂起,官方随报随修并附回归测试;日常处理来路不明的畸形 PDF 时请保持谨慎。






项目由 ArtCraft 团队及贡献者开发,采用 MIT OR Apache-2.0 双协议开源,当前 1.2k Stars。
项目地址:https://github.com/storytold/printcraft
|