摘要:PDF转Word总是排版崩、字体乱?分享我用WorkBuddy做的转换技能,能保持原版式还免费。文本型PDF直接反查真字体字号,扫描型走OCR加Agnes视觉模型兜底,附公文、表格、扫描件实测对比,全程不花一分钱。

为啥要开发这个技能
前两天帮朋友转一份公文。他在某度搜了个"PDF转Word"的在线站,传上去,下来一个Word。打开一看——红头没了,字号全变成小四,表格歪了三行,落款直接跑到了第二页。他问我这能用吗,我说别用了,重做吧。
市面上的转换器,十个有九个只在转上做文章,没在还原上下功夫。版式、字体、字号,转完就给你归一化成默认样式,看着像那么回事,实际上没法用。
我在 WorkBuddy 里搓了个技能
后来我花了两天的时间,用 WorkBuddy 自己搓了个转换技能。在封装这个技能的时候,我发现PDF转Word,要保持原有版式不变,还真不是一件容易的事,这也是我为啥花了两天的时间才调试完的原因。
(因为后续可能还要增加批量处理功能,所以暂时没有开源,有需要的,评论区留下邮箱,咱们一起开发)
我把这个技能命名为:pdf-smart-parse,其中parse,是指我调用了英伟达的模型NVIDIA nemotron-parse,这个模型是免费的,但功能强大,OCR不含糊,尤其是表格的提取,真是精准。但也可能是因为是免费模型,自身还是有一丢丢缺陷,后面会说。
其中的smart,是指技能智能化,遇到不同的PDF处理会按照不同的路径进行处理,每条路径如果遇到问题,还会触发兜底方案。每次PDF转Word,都会智能对每个文档智能精修,尽量还原成原有版式。
最关键的是,全程免费。
接来实操PDF转Word。
智能识别 PDF 类型
pdf-smart-parse拿到PDF后,首先会智能识别PDF的类型,主要分两种,一种是文本型的,一种是扫描型的。
文本型的,就是那种能选中文字的 PDF。这种最简单也最爽:直接用 PyMuPDF 把里面每个字的真实字体名、字号、坐标读出来。我第一次看到它能读出"仿宋 15.95pt"这种原件真值的时候,就知道这路走对了。保真度最高,连 OCR 都不用走。
扫描型的,文字是烧在图片里的,PDF 里压根没有文字层。这种走三步:先用 NVIDIA 的 nemotron 做 OCR;要是碰到密密麻麻的小字它提不动(真的会返回空结果),就换 Agnes 2.5 视觉模型兜底去看图;最后用智能精修把 Word 搭出来,黑体标题、仿宋正文,版式 1:1 贴着原件。
一张表说清:
拿真文件跑了一遍
说空话没用,今天拿几份真文件跑了。接下来展示转换效果,左边是PDF原件,右边是转换后的Word,这个Word文档就是直接生成的效果,没有手动调整,可以看得出来,与原有版式非常接近。
公文版 PDF的识别:红头红色加粗、文号、标题,转出来单页,全对。

(公文不便展示,我用公司的文件做替代展示)
PDF表格提取:合并单元格、行高、页脚页码,都在。

文字密度高扫描件的转换,可能是因为免费模型的原因,英伟达的这个OCR遇到字体小且密密麻麻的,会有偶发性的跑空,这时会启发兜底方案,换 Agnes,稳稳拿下。

关键是全程免费
敢说免费,是因为链路上的每一环都不用花钱。OCR 用 NVIDIA nemotron-parse,免费;兜底用 Agnes,也是免费的;解析层用 pypdf,开源。三个都不花钱,所以转一份和转一百份,成本是一样的——都是零。
NVIDIA nemotron-parse要去申请英伟达官网申请api,地址:
https://build.nvidia.com,用国内邮箱即可注册。

Agnes也要申申请api,参考我的这篇文章
Hy3限免8月结束,我给 Hy3 找了个平替模型,workbuddy可长期免费用
不管是NVIDIA nemotron-parse还是Agnes,拿到api后丢给WorkBuddy,让WorkBuddy帮你配置好就可以用了。
技能有边界,老实说
当然也有做不到的,我老实说。
扫描件本身没有字体信息,遇到方正小标宋这种特殊字体,我只能还原成黑体/仿宋的视觉层级,不是 100% 原字体。
现在这版还是"一份一调"的手调精修,批量自动化我还在做。
还有,AI 看图偶尔会认错数字或生僻字,重要文件建议你过一眼复核。
这些我后面都会写。
想试?一句话的事
因为后续还要升级,所以暂时没有开源,当然,你可以按照我的步骤调试然后封装。如果你不嫌弃这个技能还不够完美的话,留下邮箱,我发给你,咱们一起开发。
能看到这里的,说明你对WorkBuddy是真感兴趣,想用WorkBuddy辅助自己做点事。那么我这个公众号或许对你有点用。
📌 我的公众号在做什么?
我一直在写WorkBuddy相关的教程,内容分三个方向:
夜雨聆风