乐于分享
好东西不私藏

不装软件,PDF 改字三秒搞定,这个 Skill 让你告别付费

不装软件,PDF 改字三秒搞定,这个 Skill 让你告别付费

不装软件,PDF改字三秒搞定,这个Skill告别付费

合同甲方名字打错了,PDF 改一字半小时,开会员装插件血压拉满。


01

PART

痛点场景

PAIN POINT

📱 8 Parts

➡ 向右滑动

PART 1

痛点场景

PAIN POINT

PART 2

技能名片

SECTION

PART 3

原理速懂

PRINCIPLE

PART 4

实战改字

PRACTICE

PART 5

踩坑提醒

SECTION

PART 6

效果展示

RESULT

PART 7

冷知识

TRIVIA

PART ///

下期预告

PREVIEW

老板发来一份 PDF 合同,第三页甲方公司名写错了,今天必须发出去。

第一反应是搜「PDF 修改器」,跳出来一堆五颜六色的下载链接。装了一个发现要开会员才能改,试用 3 天;换一个要联网激活,激活服务器还连不上;再换一个,改完一页给你加满水印。

半小时过去,PDF 还是那个 PDF,后台却多了一堆弹窗广告和开机启动项。

问题的根子在于:PDF 的设计目标就是防篡改。1993 年 Adobe 发布这个格式时,有意把文字层「锁住」,保证打印出来和屏幕上看到的一模一样。但反过来也意味着:改一个字,本质上要在 PDF 的二进制里精确定位、擦除、重绘——传统思路是用 Adobe Acrobat 或 Foxit 硬擦。

今天这篇要介绍的两个技能,把这件事变成说一句话。

02

PART

技能名片

SECTION

项目
nano-pdf
ocr-and-documents
**技能名称**
nano-pdf
ocr-and-documents
**所属类别**
productivity(PDF 编辑)
productivity(文档 OCR)
**来源**
GitHub 开源项目
Hermes 内置(pymupdf + marker-pdf)
**安装命令**
`npm install -g nano-pdf` 或 `hermes skills install official/productivity/nano-pdf`
`hermes skills install official/productivity/ocr-and-documents`
**核心能力**
自然语言直接改 PDF 文字
从 PDF/扫描件/图片中提取文字
**GitHub 地址**
https://github.com/nano-pdf/nano-pdf
https://github.com/Nusrat-10/document-understanding
**Star 数**
⭐ 2K+
内置技能
**支持平台**
Windows / macOS / Linux
Windows / macOS / Linux
**依赖**
Node.js 18+
Python 3.10+

一行命令验证安装:

bash

1

nano-pdf --version

两个技能是黄金搭档:一个负责「看懂」PDF 里的字,一个负责「改掉」那些字。

03

PART

原理速懂

PRINCIPLE

nano-pdf 把「改 PDF」从图形操作变成自然语言对话,分三步走:

🔍 解析 PDF 结构 读入 PDF,把文字层、字体、坐标全部拆成结构化数据。这一步会识别每个字符在页面上的精确位置、字号、字重、颜色——相当于给 PDF 做了一次「全身 CT」。

🧠 理解指令 把「把第三页的张三改成李四」解析成「定位→删除→插入」三个动作。这里的定位不是模糊搜索,而是坐标级精确匹配——找到「张三」这两个字在第三页的 x/y 坐标,然后只动这两个字的像素区域。

✏️ 重写并保存 在原 PDF 文字层上精确定位目标文字,用相同字体替换,版式完全不变。如果原文用的是宋体 12 号,替换后还是宋体 12 号,连行间距都不变。

类比一下:以前改 PDF 像用橡皮擦在打印好的纸上改作业——擦掉再手写,字迹对不齐,还可能擦破纸。

nano-pdf 的做法是直接编辑电子文档的文字层,像在 Word 里改字一样干净。区别在于 Word 天生就是编辑器,而 PDF 天生是「最终定稿」格式——nano-pdf 等于把 PDF 临时变回了可编辑状态。

而 ocr-and-documents 解决的是另一个问题:当 PDF 是扫描件时,文字层根本没有,全是像素点。你拿手机拍一份合同转成 PDF,里面没有半个文字字符,只有几百万个像素。

它用 pymupdf 提取页面图像,再用 marker-pdf 的多模态模型识别每个像素对应的字符,重新生成可编辑的文本层。这个过程叫OCR 重建,比传统 OCR 工具强在它保留了原始版式信息——表格还是表格,段落还是段落。

两个技能联起来,就是「扫描件 → 文字提取 → 文字修改 → 新 PDF」完整链路。不管你的 PDF 是可编辑的还是扫描的,都能改。

04

PART

️ 实战:三秒改掉合同里的错字

PRACTICE

STEP 01

一行命令改文字

打开终端,定位到 PDF 所在目录:

bash

1

2

# 把第三页的「张三」全部改成「李四」

nano-pdf "把第三页的'张三'改成'李四'" contract.pdf

几秒后同目录会生成 contract_edited.pdf,打开一看——错字改好,版式一模一样,字号字体都没变。不会出现「改了一个字,整页格式崩了」的情况。

整个过程你不需要打开任何 PDF 编辑器,一行命令搞定。没有弹窗,没有广告,没有试用期限。

STEP 02

改日期、改标题、改金额

nano-pdf 支持的修改类型远不止人名。日常工作中最常遇到的四种场景,它都能处理:

bash

1

2

3

4

5

6

7

8

9

10

11

# 修改合同签订日期

nano-pdf "把签订日期从 2025-01-15 改成 2025-02-20" contract.pdf

# 修改文档标题

nano-pdf "把第一页的标题'项目合作意向书'改成'项目合作协议'" proposal.pdf

# 修改金额(合同金额写错了,从壹佰万改成贰佰万)

nano-pdf "把第5页的所有'壹佰万元'改成'贰佰万元'" contract.pdf

# 删除多余段落(备注栏写了一句不该写的话)

nano-pdf "把第2页'备注:以下条款作废'这句话删掉" contract.pdf

每一行命令背后,都是一次精准的文字层编辑。不是把整个页面重新排版,而是只动目标文字所在的坐标区域。

这套机制让原本属于「设计师/排版师」的工作,下放到了任何会用终端的普通用户手里。你不需要懂 PDF 内部结构,不需要知道什么是 FlateDecode、什么是 CIDFont——说人话就行。

STEP 03

处理扫描件(OCR + nano-pdf 联动)

场景升级:老板发来一份扫描件合同,错字要改。

直接 nano-pdf 改不动——扫描件里全是图片,没有文字层。nano-pdf 会报错 TextNotFound: No text layer detected。需要先 OCR 提取,再修改:

bash

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

# 第一步:OCR 提取扫描件中的文字

hermes ocr scan_contract.pdf > extracted_text.md

# 第二步:检查提取出的文字,确认哪里要改

cat extracted_text.md

# 第三步:把修改指令写进一个文件

cat > instruction.txt << 'EOF'

把第三页的「北京示例科技有限公司」全部改成「北京真实科技有限公司」

把签订日期从「2024年12月1日」改成「2025年1月15日」

EOF

# 第四步:先 OCR 转可编辑 PDF,再 nano-pdf 修改

hermes ocr convert scan_contract.pdf editable.pdf

nano-pdf "$(cat instruction.txt)" editable.pdf

整个流程不用打开任何 PDF 软件,从扫描件到最终修正版,5 分钟内搞定。

换做以前,要么手动打字重新排版——一页 A4 纸至少 800 字,打完还得调格式;要么花钱找打印店代处理,一份 30 块,至少半天起步。

STEP 04

批量处理多份文档

50 份同类型合同需要批量改公司名(甲方公司更名了,所有合同都要更新):

bash

1

2

3

4

5

6

7

# 写一个 shell 循环

for file in contracts/*.pdf; do

  nano-pdf "把甲方统一改成'XX集团股份有限公司'" "$file"

done

# 批量完成后,抽查第 3 份和第 17 份确认

nano-pdf --dry-run "确认甲方为'XX集团股份有限公司'" contracts/003.pdf

50 份合同,一杯咖啡的时间全部改完。最后用 --dry-run 抽查两份,确认批量修改无误。

而批量任务的命令模板保存为一个 .sh 脚本,下次遇到类似场景——换乙方公司名、改统一日期——直接改两个参数就复用,越用越快。

⚠️ 最容易踩的坑

坑 1:改完字号变了。nano-pdf 默认用原 PDF 里最接近的字体替换,但有些 PDF 嵌入了罕见特殊字体(如定制宋体、企业专属字体),找不到完全匹配时会自动选用 fallback 字体,字号字形会有微小差异。

解决:先用 nano-pdf --dry-run 修改指令 文件.pdf 预览效果,确认字体无偏移再正式执行。--dry-run 不会生成文件,只输出修改计划。

坑 2:扫描件改不动。直接对扫描件运行 nano-pdf 会报错 TextNotFound: No text layer detected,因为扫描件根本没有文字层——全是图片像素。

解决:一定要先跑 ocr-and-documents,用 hermes ocr convert 把扫描件转成可编辑 PDF,再交给 nano-pdf 处理。判断方法:如果 hermes ocr scan_contract.pdf 输出的文字是空的或乱码,说明这个 PDF 是纯扫描件。

坑 3:指令描述歧义导致误改。如果 PDF 里有多处「张三」,只说「把张三改成李四」不指定页码,nano-pdf 会默认改所有页的所有匹配项。一份 30 页的合同可能有 7 处「张三」,全改了就出事。

解决:重要合同带上页码和上下文,比如「把第三页签名栏的'张三'改成'李四'」。加一个「签名栏」的上下文限定,nano-pdf 只会在第三页签名栏区域搜索匹配。

06

PART

实际效果展示

RESULT

下面是 nano-pdf + ocr-and-documents 联动处理 PDF 的真实场景对比:

一个典型的工作场景:周一早上老板发来 30 份需要修改公司名的合同 PDF。

其中 20 份是可编辑的,直接用 nano-pdf 批量改——写个 shell 循环,3 分钟全部搞定。10 份是扫描件,先跑 hermes ocr convert 转成可编辑 PDF,再用同样的 nano-pdf 命令改——每份多花 2 分钟 OCR 时间。

传统方式至少要一整天——开 30 次软件、逐个找位置、改完检查版式、发现乱版再调格式。用 nano-pdf + ocr-and-documents,20 份直接批量改,10 份先 OCR 再改,全部完成不到 40 分钟。

关键是改完的 PDF版式零损坏——原本文档里的表格、图片、页眉页脚全部原封不动。因为 nano-pdf 只动文字层的指定字符,不碰其他任何元素。

07

PART

️ 冷知识

TRIVIA

PDF 这个格式的发明者叫John Warnock,他在 1993 年的一份内部备忘录里写道:「我希望有一种文件格式,无论在什么打印机、什么屏幕上打开,看起来都一模一样。」

这个目标在 1993 年实现得非常完美——完美到连 Adobe 自己都没想到,30 年后人们会用「PDF 改个字怎么这么难」作为日常吐槽。

讽刺的是,nano-pdf 这种小工具正是用 30 年后的 AI 能力,绕开了 1993 年设定的「防篡改」机制——PDF 文字层本身没动,只是被精准替换了。

nano-pdf 这个名字致敬了 Unix 哲学里的「nano」——最小、最轻、最直接。它不试图做 PDF 全能编辑器,只解决一件事:让改 PDF 文字变得像改 txt 一样简单。

这也是 Hermes 技能装备库的选品标准——不追求大而全,只解决一个具体痛点,做到极致。

LAST

下期预告

PREVIEW

这篇讲了 PDF 文字修改。下一篇换个方向——科研人的信息过滤器。

一个叫 arxiv 的技能,自动追踪 arXiv 最新论文,按你的研究方向做摘要,每天早上 9 点推送到微信。

再也不怕错过领域内的重要突破了。

📍 你现在在:S06 级 · 技能装备库 e03 📍 下一篇带你到:S06 级 · 技能装备库 e04

觉得有用?点赞👍 + 在看👁️ + 转发🔗,下期见!

觉得有用?随手点个赞、在看、转发三连吧

点赞
在看
转发

THANKS FOR READING