工具定位(只做表格抽取,不做图片生成)
本篇提供 1 条可直接复用的「在线工具生成型 AI 提示词(Prompts)」,用于让 AI 产出一个可运行/可部署的 Web 工具:把 PDF 中的表格区域识别出来,并在浏览器端进行可视化校对,最后导出 CSV / XLSX。
适用场景:财务报表/报价单/对账单/检测报告等包含规则或半规则表格的 PDF;支持多页、多表、跨页表格(以“手动合并”为主,自动合并为辅)。
输入与输出
- 输入:PDF 文件(本地上传);可选:页码范围、语言(中/英)、导出字段映射模板(JSON)。
- 输出:CSV、XLSX;同时导出“抽取日志(JSON)”用于复盘识别参数与错误页。
交付物(生成结果必须包含这些)
- 完整项目源码(前端 + 轻量后端可选)与清晰文件树
- 本地运行命令、构建命令、生产部署说明(含 Dockerfile / compose 其中之一)
- 最少 6 条测试用例或 QA checklist(覆盖:多页、多表、合并单元格、旋转页面、扫描件、超大文件)
- 隐私说明:默认不上传服务器;如需后端处理,必须提供开关与本地自托管指引
AI 提示词(Prompts)
你是资深全栈工程师与产品交付负责人。请你生成一个“可直接运行与可部署”的在线工具项目:PDF 表格识别与结构化导出(CSV/XLSX)。
【核心目标】
1) 用户上传 PDF 后,前端用 pdf.js 渲染页面缩略图与大图。
2) 支持两种抽取方式:
- 自动:检测表格区域(基于启发式线条检测/轮廓检测/阈值化,推荐 OpenCV.js 或纯 Canvas 算法),对每个单元格做 OCR(tesseract.js),拼成二维表格。
- 手动校对:用户可拖拽框选表格区域、调整网格线、合并/拆分单元格、编辑文本。
3) 导出:CSV 与 XLSX(用 SheetJS/xlsx)。
4) 生成“抽取日志 JSON”:包含页码、表格框坐标、网格参数、OCR 置信度、耗时。
【硬性交付物】
- 给出完整文件树(tree 形式)
- 给出全部关键源码(可直接复制粘贴运行)
- 给出本地运行命令(npm/pnpm)、构建命令、生产部署方案(至少 Dockerfile 或 docker-compose.yml 二选一)
- 给出配置项说明(如:最大文件大小、并发、OCR 语言包、是否启用后端)
- 给出至少 6 条测试用例或 QA checklist(可写成 Playwright 测试 + 手工 QA 清单混合)
【技术选型建议(可调整但要说明理由)】
- 前端:Vite + React + Type (或 Next.js 任选其一)
- PDF 渲染:pdfjs-dist
- 表格检测:OpenCV.js(优先)或纯 Canvas 算法(备选)
- OCR:tesseract.js(支持中文简体+英文)
- 导出:xlsx(SheetJS)
- UI:轻量组件库(如 Radix UI / Headless UI)或自写
【功能细节要求】
- 页面:上传区、任务队列、页面缩略图列表、右侧校对面板(网格编辑器 + 文本编辑)
- 性能:大文件分页处理;提供“只处理选择页”与“暂停/继续”
- 错误处理:对扫描件/低对比度/旋转页面给出提示;对 OCR 低置信度单元格高亮
- 导出:允许设置表头行、跳过空行、字段重命名;XLSX 每个表格一个 sheet
- 安全与隐私:默认纯前端运行,不上传服务器;如实现后端(可选),必须提供开关并默认关闭
【输出格式】
1) 先给项目简介(不超过 120 字)
2) 再给“文件树”
3) 再按文件逐个输出代码块(标注文件路径)
4) 再给运行/构建/部署步骤
5) 再给测试用例或 QA checklist
注意:不要生成任何“图片/海报/插画/渲染图”相关内容;本工具只处理现有 PDF 内容的识别、校对与导出。
验收要点(发布前自检)
- 正文只使用 <h4> 作为小标题;不出现带数字前缀的小标题(如 1./2.)。
- Prompt 以灰底块展示;可直接复制粘贴使用。
- 生成结果必须能跑起来:给出命令、端口、构建产物与 Docker 部署。
- 必须包含测试用例或 QA checklist,且覆盖至少 6 个边界场景。