扫描PDF书签OCR生成器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_1d9594a8/pdf-ocr-bookmarks。
技能介绍
扫描PDF的导航困境
扫描版PDF通常只有图像而没有文本层,这意味着它们天生缺失可跳转的导航书签(PDF Outline)。即使文档自带印刷版的目录页,目录中标注的“逻辑页码”也往往与PDF阅读器中显示的“物理页索引”存在偏移——封面、扉页或未编页码的插图极易导致三到四页的错位。手动拖拽滚动条寻找章节不仅耗时,且在百页以上的长篇文档中极易出错。
核心工作流与匹配策略
该技能通过 PyMuPDF 与 Tesseract OCR 的结合,自动化解决上述导航缺失问题。其核心工作流分为以下几个关键步骤:
- 类型检测与目录OCR:首先判断PDF是否包含文本层。若是纯扫描件,则以 300 DPI 渲染用户指定的目录页,使用
chi_sim+eng模型进行OCR,解析出章节标题与印刷页码。 - 全页扫描与物理定位:针对印刷页码与物理索引错位的痛点,技能会运行
--mode find_sections脚本 OCR 全文(或仅页面顶部 50% 区域)。通过提取目录中的 1-3 个特征关键词(如“投标函”),在每一页的头部区域进行匹配,从而锁定章节标题实际出现的物理页面。 - 元数据写入与验证:最后调用
set_toc()方法将精准映射后的书签树写入PDF。整个过程仅修改书签元数据,绝不触碰或破坏原文件的正文内容。
适用边界与环境注意点
- OCR速度限制:在 200 DPI 分辨率下,中英文混合识别的速度约为每秒 1 页。处理 100 页的扫描件需预留约 2 分钟的计算时间。
- 语言包与路径配置:Windows 默认的 Tesseract 仅包含英文模型,必须手动下载
chi_sim.traineddata并确保环境变量TESSDATA_PREFIX指向包含该文件的目录。 - 编码与沙箱问题:在 Windows 下处理中文 OCR 结果时,需注意控制台的
UTF-8编码配置以避免 GBK 报错;若目标文件被占用,建议先将结果写入临时目录再拷贝。
使用场景
- 拿到无书签的扫描版合同PDF,需要快速定位“违约责任”“付款条款”等章节,手动翻找效率低。
- 标书的扫描版PDF只有印刷目录,页码偏移导致按目录跳页总错,需要重建正确的导航书签。
- 历史扫描版教材没有电子目录,想按章节标题快速跳转复习,需要为PDF添加可导航的章节书签。
- 整理扫描版技术手册,需要把目录里的章节对应到实际内容页,添加书签方便团队查阅。
适合人员
- 法务专员:需频繁查阅扫描版合同中的特定条款,手动定位耗时久,希望快速跳转到目标章节。
- 标书撰写人:扫描版标书的印刷目录与实际页码偏移,需要重建准确的导航书签便于评审时快速查阅。
- 档案管理员:整理历史扫描版文档时,需为无书签的PDF添加章节导航,方便后续检索和借阅。
- 学生或备考者:扫描版教材没有电子目录,希望添加章节书签以快速跳转复习特定知识点。