Skip to content

Repository files navigation

AjaxPDF

一个基于 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

Windows / RustRover 故障排查

请始终从项目根目录运行命令,不能在 D:\ai 这类父目录执行:

cd D:\ai\AjaxPDF
npm run tauri dev

项目必须使用 MSVC 目标,而非 MinGW/GNU 目标。否则链接阶段可能出现 corrupt .drectveexport ordinal too largeld 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

使用方式

  1. 启动应用后点击“打开 PDF”,选择要编辑的文件。
  2. 点击原有文字进行覆盖替换,或点击页面空白区域新增文字。
  3. 选中文字后可调整字体、字号、颜色和位置;使用删除按钮或 Delete 键删除。
  4. 点击“保存”并选择输出位置,生成编辑后的 PDF。

当前限制

  • 原文修改通过在原位置绘制白色覆盖块并写入新文字实现,不会直接修改原始 PDF 的文字对象。
  • 覆盖块为白色,更适合白色背景的文档页面。
  • 中文字体依赖 Windows 系统字体目录中的可用字体文件。

License

本项目基于 MIT License 开源,版权所有 © 2026 xiangshenb。可自由使用、修改和分发,请保留原始版权声明。

About

pdf文字编辑软件

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages