单文件 EXE,无需安装 Node.js 或 Electron。下载后直接双击运行。
当前 EXE 尚未配置商业代码签名。Windows SmartScreen 首次运行时可能显示警告,可点击“更多信息 → 仍要运行”。请始终从本仓库的 Releases 页面下载。
很多 PDF 工具擅长批注、签名或整页重排,却很难把一段已有文字改掉后仍然像原文一样。GHY 会读取 PDF 内部字体信息、扫描本机字体并继承文字的真实位置和渲染方式,专注于“修改一小段文字,同时尽量不破坏原版式”。
演示使用的是仓库内的完全虚构样本 PDF,其中姓名、地址、账号与交易均为编造数据,不包含真实个人或银行信息。
- 直接选择并替换已有 PDF 文字,保留原字号、基线、位置和颜色。
- 优先复用 PDF 内嵌字体;必要时按 Family、Full name 和 PostScript name 匹配 Windows 字体。
- 扫描系统字体目录和当前用户字体目录,支持 TTF、OTF、TTC 与 OTC。
- 缺字时给出字体兼容提示,并可按字符自动回退中英文字体。
- 支持添加、删除、拖动、八方向缩放、精确 X/Y/宽/高和自动换行。
- 支持左右目标对齐、参考行距匹配和多个文本框垂直等距分布。
- 支持粗体、斜体、下划线、颜色、左中右对齐及格式刷。
- 匹配字体可用时保持矢量导出;只有无法取得字形的相关页面才使用 216 DPI 栅格兜底。
- 支持撤销/重做和常用键盘快捷键。
- 本地读取和导出 PDF,不把文档上传到服务器。
- 从 Releases 下载
GHY-PDF-Editor-*-win-x64.exe。 - 双击 EXE,点击“打开 PDF”。
- 点击要修改的文字,在右侧选择“修改”,然后输入新内容。
- 点击“导出 PDF”保存为新文件;原文件不会被覆盖。
应用使用对方电脑已经安装的字体。若 PDF 字体未嵌入且本机也未安装,程序会提示并尝试选择兼容字体,外观可能产生轻微差异。
需要 Node.js 20 或更高版本:
npm install
npm run dev也可以双击项目根目录的 启动PDF修改器.bat。
npm test
npm run build
npm run package:winnpm run package:win 会在 release/ 生成 Windows x64 便携版 EXE。推送形如 v1.1.0 的标签后,GitHub Actions 会自动测试、打包并创建 Release。
- 修改已有文字时优先复用 PDF.js 已载入的文档内部字体。
- 无法直接复用时,去除 PDF 子集字体前缀并匹配本机字体。
- 同时继承填充/描边渲染模式,避免把“Regular + 描边”误判为真正的 Bold。
- 字体缺少部分字符时,预览和导出可按字符回退到兼容字体。
- 有可嵌入字体时采用矢量导出;无法取得字体程序时只栅格化受影响的页面。
| 操作 | 快捷键 |
|---|---|
| 打开 PDF | Ctrl+O |
| 导出 PDF | Ctrl+S |
| 撤销 / 重做 | Ctrl+Z / Ctrl+Y 或 Ctrl+Shift+Z |
| 删除文字 | Delete |
| 微调位置 | 方向键 |
| 取消当前选择模式 | Esc |
- Electron 缓存、设置、会话、日志和临时数据写入应用旁边的
.runtime/。 - 删除 EXE 旁边的
.runtime/即可移除应用自身产生的运行数据。 - 应用退出时会清除自身写入的 Windows 最近文档记录。
- Windows 事件日志、杀毒软件记录和磁盘索引属于操作系统行为,普通应用无法承诺清除。
- 目前发布的是 Windows x64 便携版,暂未提供 macOS、Linux 和 Windows ARM 构建。
- 复杂 Type 3、轮廓字、未嵌入字体或特殊编码 PDF 可能需要栅格兜底。
- 程序目标是精确修改文字,不是完整的页面排版、OCR 或表单设计套件。
- 未签名构建可能触发 SmartScreen;后续计划加入代码签名。
如果它确实解决了你的 PDF 修改问题,欢迎点一个 ⭐,这会帮助更多人发现项目。
本仓库当前尚未添加开源许可证,源码默认保留全部权利。你可以查看并运行公开代码,但复制、修改和再分发前请先获得作者许可。


