一个基于 Tauri 2、Vanilla TypeScript 和 Pdfium 的本地 PDF 文字编辑工具。应用在桌面端打开 PDF 后,支持预览页面、定位原有文字并覆盖替换,也可以在任意位置新增文字,最后将修改内容另存为新的 PDF 文件。
- 打开本地 PDF 文件并按页渲染预览。
- 点击原有文字,识别同一行连续文字并以白色覆盖层替换内容。
- 点击页面空白区域新增文字,双击文字可继续编辑。
- 支持拖拽或使用方向键移动文字;按住
Shift可每次移动 10 点。 - 支持设置字体、字号和文字颜色。
- 支持删除新增文字或覆盖删除原有文字。
- 支持撤销、重做、翻页和 25% 至 400% 缩放。
- 将编辑结果另存为 PDF;中文文字会优先嵌入系统中的中文字体。
- 前端:Vite、Vanilla TypeScript、HTML、CSS。
- 桌面框架:Tauri 2。
- PDF 处理:Rust、
pdfium-render、Pdfium。 - 文件选择与保存:
@tauri-apps/plugin-dialog。
- Node.js 与 npm。
- Rust MSVC 工具链。项目通过
rust-toolchain.toml固定使用stable-x86_64-pc-windows-msvc,需安装 Visual Studio Build Tools 的 C++ 生成工具。 - Windows 环境下可用的 Pdfium 动态库,项目默认从
src-tauri/lib/pdfium.dll加载并在打包时携带。
npm install
npm run tauri dev打开 PDF 后,点击“保存”或按 Ctrl+S 会直接覆盖当前文件。“另存为”始终要求选择新的输出路径;完成另存为后,后续“保存”会更新该新文件。
构建前端资源:
npm run build构建桌面安装包:
npm run tauri build请始终从项目根目录运行命令,不能在 D:\ai 这类父目录执行:
cd D:\ai\AjaxPDF
npm run tauri dev项目必须使用 MSVC 目标,而非 MinGW/GNU 目标。否则链接阶段可能出现 corrupt .drectve、export ordinal too large 或 ld returned 1 exit status。可用以下命令确认当前目录中的工具链:
rustc -Vv输出中的 host 应为 x86_64-pc-windows-msvc。若未安装该工具链,执行:
rustup toolchain install stable-x86_64-pc-windows-msvc
rustup target add x86_64-pc-windows-msvc --toolchain stable-x86_64-pc-windows-msvc如果项目曾从其他目录移动或重命名,Cargo 缓存可能继续引用旧路径,导致 Tauri 读取插件权限时提示找不到旧目录中的文件。进入 src-tauri 后清理并重新构建:
cd D:\ai\AjaxPDF\src-tauri
cargo clean
cd ..
npm run tauri dev- 启动应用后点击“打开 PDF”,选择要编辑的文件。
- 点击原有文字进行覆盖替换,或点击页面空白区域新增文字。
- 选中文字后可调整字体、字号、颜色和位置;使用删除按钮或
Delete键删除。 - 点击“保存”并选择输出位置,生成编辑后的 PDF。
- 原文修改通过在原位置绘制白色覆盖块并写入新文字实现,不会直接修改原始 PDF 的文字对象。
- 覆盖块为白色,更适合白色背景的文档页面。
- 中文字体依赖 Windows 系统字体目录中的可用字体文件。
本项目基于 MIT License 开源,版权所有 © 2026 xiangshenb。可自由使用、修改和分发,请保留原始版权声明。