PdfCraft 0.20.0:离线处理 PDF,还能让 AI 代理直接调用
摘要
PdfCraft 0.20.0 用纯 Rust 实现,阅读、整理、批注、表单与 OCR 全部在本地完成,桌面与浏览器共用一套引擎,还给 AI 代理留了默认关闭的调用入口。
推荐- 软件名称
- PdfCraft
- 版本
- 0.20
- 收费
- 免费
- 开源
- 开源
- 操作系统
- WindowsmacOSLinuxFreeBSDWeb
- 更新时间
- 2026-11-11 23:56
PdfCraft 是一款用 Rust 从零写起的 PDF 工作台,阅读、页面整理、合并拆分、批注、表单、OCR 与加密都在同一个应用里完成。它原生运行在 macOS、Windows、Linux 和 FreeBSD 上,也能通过浏览器打开,桌面端与网页端共用同一套引擎。全部处理在本地进行,不需要注册账号,也没有遥测数据回传。

一套引擎,五个入口
桌面应用、浏览器版本、命令行工具 pdfcraft-cli、面向 AI 代理的 MCP 服务,以及给开发者用的 Rust API,背后是同一份代码。代码库按职责切成若干 crate:对象层负责解析与增量写入,安全处理器管加密,渲染层做绘制和文本提取,引擎层统一会话、编辑与撤销。界面基于 egui,但核心层不依赖界面,所以同一套能力既能画进窗口,也能塞进无头脚本。
渲染做得比「能打开」更细
字距、连字、从右到左排版、竖排中日文、渐变、透明度、软遮罩,这些容易被忽略的排版细节都在渲染器考虑范围内。大页面分块绘制,放大之后文字边缘依然干净。搜索覆盖整份文档并遵循正确的阅读顺序,阅读模式提供连续、单页、双页、旋转、全屏和无干扰几种视图,夜间可切深色主题。
项目拿公开的 PDF 测试语料当对照基准:983 个文件里 963 个能正常打开并渲染,崩溃数为零;958 个走完了打开、编辑、保存的完整往返。保存采用增量更新加原子替换,原文件的字节保持不变,新内容先写临时副本再整体换上去,中途断电也不会留下半截文件。撤销历史跟着文档走,存盘之后仍然可以回退。
合并不等于拼页
PdfCraft 的页面整理把整份文档铺成网格,多选、旋转、删除、插入空白页、从别的文件插页、前后移动都在这里完成。合并时每个来源文件会拿到一个书签,原有的嵌套书签同时保留;拆分既能按固定页数切,也能指定页码区间。更值得说的是它没有把合并当成简单拼页:链接与命名目标重新指向,表单字段继续可交互,图层默认状态和附件一并留着。

0.20.0 这批改动
浏览器端现在能自己做 OCR 了,识别通过 Web Workers 并启用 SIMD 指令完成,扫描件不必上传到任何服务器。带格式复制可以把选中的内容连同样式一起拷成 HTML。批量处理加了 dry-run 预览,先看每个任务准备做什么,确认无误再真正写出文件。涂黑标记支持正则表达式,签名外观会显示真实验证状态,Word 导出保留带框表格,快速工具栏里能直接裁剪页面。另外两处偏细节的修补也实用:泰文的编辑与断行问题被处理掉,页面对象可以在两个文档之间复制粘贴。

批注、表单、加密都留在本地
批注支持线程回复、高亮、图形、墨迹和状态标记,右侧面板把每条评论挂在对应页上,谁提的、什么时候提的、回复了什么一目了然。表单能填文本框、复选框、单选按钮、列表和签名字段,字段值同步显示在面板里。加密覆盖 40 位 RC4 到 AES-256,包含修订版 2 到 6、用户密码与所有者密码、Unicode 密码以及只加密附件的场景;改过的加密文档仍以同一把密钥保存。涂黑与净化工具用来彻底移除敏感内容,另有无障碍检查器和基础数字签名。

给 AI 代理留的门是关着的
命令行工具的每项能力都由 JSON Schema 描述,run 子命令可以执行单次调用,也能读一份 JSON 脚本批量跑,--root 参数把读写范围锁在指定目录。面向 AI 代理的 MCP 服务默认关闭,打开后只通过标准输入输出通信,不监听网络端口。代理还能通过 --control 驱动真实桌面界面,读取可访问性树、点击控件、输入按键、拖拽和截图;控制文件用随机令牌,通信限制在回环地址。
alpha 阶段的边界要说清楚
项目把当前状态标为 alpha。按它自己的统计,功能对照表里 57% 的条目已具备某种形态,核心必备能力的完成度是 94%。对已有文本的可靠编辑还偏弱,中日韩文字和从右到左文字尤其明显;OCR 目前主要覆盖拉丁文字;Office 文档的导入导出、PDF 格式的合规预检、完整的 XFA 表单都还没补齐,网页版也还不能打印。页面绘制暂时由外部渲染库承担,项目自研的渲染器仍在建设中。
项目 README 对自身状态的描述很直接:alpha 阶段,功能对照表里 57% 已有某种形态,核心必备能力完成度 94%。
把它当成日常阅读与整理的主力工具,再配合命令行做批量归档,是眼下比较稳的用法。真要做排版级编辑或专业预检,它一个人还扛不下来。开源、离线、可被脚本和代理调用这三点,已经足够让它进入不少人的工具栏。