下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/laoxi--pdf-tupianwenzitiqu.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @laoxi/pdf-tupianwenzitiqu。从 PDF、扫描文档和图片中可靠恢复可读文字与版面结构。自动区分原生文本 PDF、扫描型 PDF 与混合型 PDF,优先使用高保真的文本层解析,在低文字密度、异常编码或扫描页面时切换视觉识别;支持分页、段落、标题、列表、表格、页眉页脚、关键数字、置信风险和结果校验,按用户需要输出原文转写、结构化 Markdown、纯文本或可保存文件。
适用于合同、论文、票据、表单、截图、扫描件、书页和多页资料。
阅读全文 (展开查看完整说明)
概述
1. 核心定位
本 Skill 的目标不是“把看到的字随便抄下来”,而是尽可能保真地恢复文档中的文字、阅读顺序和结构,并对高风险内容进行针对性复核。
处理对象包括:
- 单张图片:PNG、JPG/JPEG、WEBP、BMP、TIFF、GIF 等常见格式。
- PDF:原生文字 PDF、扫描型 PDF、文字与扫描混合型 PDF。
- 典型文档:合同、论文、报告、发票/票据、表单、证件、书籍页面、网页截图、聊天截图、宣传图。
默认原则:
- 先判断文档类型,再选择识别路径。
- 原生 PDF 优先直接提取文本层,视觉识别作为补救,而不是默认替代。
- 扫描页必须经过视觉/OCR 路径,不能把“文本层为空”误判为“页面没有文字”。
- 保持阅读顺序与结构优先于制造漂亮 Markdown。
- 不确定的字符宁可标记风险,也不要伪装成确定结果。
- 关键数字、代码、编号、金额和表格数据要采用更严格的复核策略。
2. 任务识别
收到文件后,先判断用户真正需要的输出类型:
| 用户意图 | 默认动作 |
|---|---|
| “提取文字” | 完整转写,尽量保持结构 |
| “把 PDF 转成文字” | 全文提取,分页保留 |
| “识别图片里的内容” | 视觉识别后按阅读顺序输出 |
| “只要正文” | 去除明显页眉、页脚、装饰元素,正文优先 |
| “只提取表格” | 单独恢复表格,不把单元格拼成一段文字 |
| “提取关键数字/编号” | 只返回目标字段,并进行二次复核 |
| “保存为 Markdown/TXT” | 先完成识别与校验,再生成文件 |
| “告诉我这份文件写了什么” | 识别后进入摘要/问答流程,而非机械全文输出 |
如果用户没有指定范围,对单个文件默认处理全部页面;对超长文件可以先建立页面级诊断,再分批恢复全文。
3. 总体决策流程
阶段 A:文件与页面诊断
对 PDF:
- 获取页数、页面尺寸、元数据和加密状态。
- 对每页计算文字层信息,例如字符数、文字块数、图片数量、页内文字面积占比等。
- 将页面归类为:
native-text:有可靠文本层;scanned:几乎无文本层但存在页面图像;mixed:同时存在文本层和图片内容;suspicious:文本层异常,如字符乱码、编码异常、字符极少但页面明显有内容。
- 仅针对需要识别的页面触发视觉/OCR,不要无脑把整本 PDF 全部栅格化。
对图片:
- 检查分辨率、方向、透明背景、是否明显倾斜、是否存在复杂背景。
- 判断是否存在文字区域以及可能的阅读方向。
阶段 B:选择识别路径
原生 PDF → 文本层提取 → 结构恢复 → 风险检测 → 必要时局部视觉复核。
扫描 PDF → 页面渲染 → 视觉/OCR → 结构恢复 → 风险检测 → 关键区域复核。
混合 PDF → 文本层 + 页面图像联合判断。对文本层缺失或明显与视觉内容不一致的区域进行补识别。
图片 → 视觉识别 → 阅读顺序恢复 → 关键内容复核。
4. PDF 原生文本恢复规范
4.1 不可使用的简化逻辑
禁止仅凭以下单一条件判断标题或段落:
- “字体 > 16 就是标题”;
- “加粗就是标题”;
- “每个 TextBlock 都是一段”;
- “每页只需按 API 返回顺序拼接”。
这些特征只能作为候选信号。
4.2 推荐恢复策略
优先获取:
- span 文本、字体、字号、粗体/斜体信息;
- block / line / span 的坐标;
- 文本块边界;
- 页面的阅读方向与列结构。
恢复时综合判断:
- X/Y 坐标连续性;
- 相邻行间距;
- 左边界是否一致;
- 字号相对正文的差异;
- 粗体、全大写、编号模式;
- 前后内容是否形成标题—正文层级;
- 两栏/多栏情况下的列顺序。
目标是恢复“可读的原文结构”,而不是臆造原 PDF 的排版源文件。
4.3 空格与换行
不要对每个 span 直接 .strip() 后再机械连接。
应根据:
- span 间 X 坐标间距;
- 原始文本中的空格;
- 中文连续字符;
- 英文单词边界;
- 标点位置;
- 行尾连字符;
判断是否需要插入空格或换行。
中文正文通常不应在每个 span 之间强行加入空格。
4.4 多栏页面
检测同页多个明显的 X 坐标簇。若存在双栏或多栏,应按“栏 → 从上到下”的顺序阅读,而不是简单按照内部对象顺序拼接。
5. 扫描 PDF 与图片识别规范
5.1 OCR/视觉识别不是“最后一句话”
只要页面文字层为空、极少,或疑似乱码,就必须考虑视觉路径。
可使用当前环境中可用的视觉/OCR能力。若存在图像理解工具,应优先直接让模型读取页面图像;若需要程序辅助,可使用 scripts/pdf_page_probe.py 渲染指定页面。
5.2 图像识别提示要求
识别时应明确要求:
- 读取全部可见文字,而不是只读标题;
- 保持自然阅读顺序;
- 区分标题、正文、列表、表格、脚注、页眉页脚;
- 保留原文标点、大小写、数字、小数点、百分号、货币符号;
- 不猜测被遮挡或不可辨识字符;
- 对模糊位置使用
[?]或[无法辨认],不要凭常识补全; - 表格必须按行列关系恢复;
- 对旋转文字、竖排文字、边缘文字单独注意。
5.3 图片质量不足时
先判断是否值得预处理:
- 旋转/方向矫正;
- 适度放大;
- 灰度化/对比度增强;
- 局部裁剪;
- 对倾斜页面做纠偏。
不要无限尝试“美化图片”。当原始像素已经不足时,应明确保留不确定性。
6. 结构恢复规则
输出结构优先级:
标题 > 段落 > 列表 > 表格 > 引用/注释 > 页眉页脚 > 装饰元素
标题
标题判断需要结合多个信号。建议使用:
- 相对字号;
- 粗体/字重;
- 独立成行;
- 前后留白;
- 编号模式,如
1.、1.1、(一); - 与正文的语义关系。
仅在证据充分时才提升为 Markdown 标题;证据不足时保持普通文本。
列表
识别:
•、-、*;1.、2.;a)、b);(1)、(2);- 中文序号。
保留原有编号,不要自动重编号。
表格
表格是高风险区域。若能可靠恢复,应输出 Markdown 表格或结构化数据;若列边界不确定,不要凭空移动单元格。
推荐策略:
- 先识别表头;
- 判断行列边界;
- 对合并单元格保留语义;
- 逐行校验数字;
- 无法可靠恢复时,退化为“按行转写”,并说明布局可能存在损失。
页眉页脚
跨页面重复出现、位置固定、字号较小的文本,可判为候选页眉/页脚。只有在重复性足够明显时才折叠;不要误删正文中的重复句子。
7. 高风险内容复核
必须重点复核:
- 日期;
- 金额、税率、百分比;
- 电话号码;
- 订单号、合同号、票据号;
- 身份/证件编号;
- 银行账号或其他长数字串;
- 邮箱、URL;
- 型号、版本号、程序代码;
- 表格中的数字字段。
复核原则
第一轮:按正常版面识别。
第二轮:针对高风险片段做局部独立复核,优先查看原图对应区域。
第三轮仅在必要时执行:当两次结果冲突,或结果与上下文存在明显矛盾。
不得因为“常识上应该是某个数字”而强行覆盖视觉证据。
不确定结果
优先使用:
[?]:单字符不确定;[无法辨认]:整段无法可靠读取;[候选:A / B]:存在少量明确候选。
不要把未知字符替换成看似合理的字符。
8. 输出模式
根据用户需求选择一种主输出模式:
A. 保真转写
适用于“逐字提取”“完整 OCR”。
- 尽量忠实;
- 分页;
- 不主动摘要;
- 保留可确定的格式信息。
B. 结构化 Markdown
适用于阅读与后续编辑。
- 页面标题;
- 标题层级;
- 段落;
- 列表;
- 表格;
- 必要时保留页码标记。
C. 纯文本
适用于复制到其他程序。
- 删除 Markdown 标记;
- 保留自然段与基本换行。
D. 数据抽取
适用于只要字段、数字或表格。
- 只输出目标信息;
- 不混入长篇 OCR 原文;
- 对字段做二次校验。
E. 文件输出
用户要求保存时才创建 .md、.txt 或其他明确格式;文件生成前先完成识别与校验。
9. 页面级状态与异常处理
每页在内部可标记:
OK_NATIVE:文本层稳定;OK_VISION:视觉识别稳定;MIXED:文本层与视觉内容联合恢复;LOW_CONFIDENCE:存在明显不确定内容;NEEDS_REVIEW:关键字段发生冲突;EMPTY_PAGE:确认为空白页;FAILED:页面无法可靠读取。
最终回复不必展示全部内部状态,但当识别存在明显损失时,应简洁告知用户影响范围,例如“第 7 页表格列界线不清,数字字段存在少量不确定项”。
加密/受限 PDF
遇到密码保护、损坏、无法解析或权限受限:
- 明确说明是哪一类问题;
- 不伪造提取结果;
- 如果用户能提供解锁后的文件,再继续处理。
10. 大文件策略
对于超长 PDF:
- 先读取页数与页面诊断信息;
- 只对需要视觉识别的页面进行渲染;
- 分批处理,不要一次把整本文档全部塞入上下文;
- 每批完成后记录页码范围;
- 最终按原页序合并。
默认优先保证准确率,而不是追求一次性处理完所有页面。
11. 质量控制清单
在提交最终结果前,内部检查:
- [ ] 页数是否与源文件一致;
- [ ] 是否漏掉低文字密度页面;
- [ ] 扫描页是否走视觉/OCR 路径;
- [ ] 多栏页面阅读顺序是否合理;
- [ ] 标题是否存在明显误判;
- [ ] 段落和换行是否自然;
- [ ] 表格是否发生列错位;
- [ ] 高风险数字是否复核;
- [ ] 不确定字符是否明确标记;
- [ ] 是否错误添加了原文没有的内容;
- [ ] 用户要求的是全文、正文、字段还是摘要,是否匹配;
- [ ] 生成文件后是否能正常打开并包含完整内容。
12. 推荐操作模板
图片
读取整张图片中的所有可见文字,按自然阅读顺序恢复。保留标题、正文、列表、表格、注释和关键数字。不要猜测模糊字符;不确定处标记
[?]。若存在表格,优先恢复行列关系。
PDF 原生文本页
优先使用 PDF 文本层。根据坐标、行距、字号、字重和列结构恢复自然阅读顺序;不要简单按对象顺序拼接,也不要仅凭字号判定标题。
扫描 PDF 页
将页面视为图像进行完整视觉识别。保持自然阅读顺序,识别标题、段落、列表、表格、脚注和页眉页脚。关键数字与编号进行局部复核。
13. 资源
scripts/pdf_page_probe.py:PDF 诊断、页面文字统计、页面图像渲染及可选图片提取辅助脚本。README.md:安装、调用与能力说明。
14. 设计边界
本 Skill 不承诺“100% OCR 正确”。正确做法是:能确认的准确输出;不能确认的明确标记;关键内容额外复核;无法恢复的版面诚实说明。
不要把模型推测、语义补全或常识纠错伪装成源文件原文。