你将得到什么
这是一条“在线工具生成型 AI 提示词(Prompts)”。目标是让 AI 直接产出一个可运行、可构建、可部署的 Web 工具:用户上传 PDF 后,一键生成“可访问性标签与阅读顺序”检测报告,并可下载 JSON/HTML 报告文件。
覆盖场景
适用于:交付前自检(印刷/出版/政企材料)、批量验收供应商 PDF、将历史资料迁移到可访问性要求更高的平台(含 WCAG/无障碍检查需求)、需要快速定位“标题层级/目录/语言/元数据/阅读顺序异常”等问题的团队。
功能清单(建议实现)
1) 基础元数据: /Author/Subject/Keywords、CreationDate/ModDate、PDF 版本。
2) 语言与标题:文档语言声明(若可获取)、标题是否为空、标题字符可读性提示。
3) 目录与结构:书签(Outline)是否存在、层级是否连续、空书签/重复书签提示。
4) 阅读顺序(启发式):按页面文本块的坐标排序推断阅读顺序,检测明显的跳读/栏位错序风险;对多栏布局给出提示。
5) 扫描件识别:判断页面是否主要由大图构成(疑似扫描件),提示需要 OCR 或替代文本。
6) 可访问性提示项:缺失标题、缺失书签、疑似无文本层、图像占比过高、页眉页脚重复干扰、超长行/异常字符等。
7) 报告导出:下载 JSON(机器可读)+ HTML(人可读)两种报告;每条问题包含:页面、严重级别、定位信息、修复建议。
技术约束(写进提示词里)
工具必须可本地运行且可部署;必须给出完整项目源码、文件结构、安装/运行命令、部署说明、以及测试用例或 QA checklist。不得引导生成任何图片/插画/海报/渲染图;只做“检测/分析/预览/导出报告”。
AI 提示词(Prompts)
你是一名资深全栈工程师 + PDF 解析专家。请为我生成一个“PDF 可访问性标签与阅读顺序检测”在线工具的完整可运行项目。
【目标】
- 用户在浏览器上传 PDF(本地文件),前端展示解析进度。
- 后端/本地分析 PDF,输出检测结果(问题列表 + 指标摘要)。
- 支持一键下载:report.json 与 report.html。
【硬性输出】
1) 先给出项目简介(不超过 10 行)。
2) 给出完整文件树(tree 形式)。
3) 输出每个关键文件的完整代码内容(不要省略)。
4) 给出可复制执行的命令:安装、开发运行、生产构建、生产启动。
5) 给出部署说明:Dockerfile + docker-compose(可选)+ 在任意 VPS/平台的部署步骤。
6) 给出测试用例:至少包含 6 个单元测试/集成测试(可使用 Vitest/Jest),以及一个 QA checklist(覆盖上传失败、空文件、非 PDF、超大 PDF、加密 PDF、扫描件 PDF、多栏排版 PDF 等)。
【项目建议】
- 技术栈建议:Node.js + Type 。
- 前端:Vite + React(或纯 HTML/TS 也可),负责上传、展示结果、下载报告。
- 后端:Express/Fastify,负责接收文件并分析。
- PDF 解析:优先使用 pdfjs-dist(Node 侧解析),必要时搭配 pdf-lib 读取元数据;不依赖系统级外部二进制。
【检测规则(至少实现这些)】
- 元数据检查: /Author 缺失提示;CreationDate/ModDate 合法性。
- 书签/目录:是否存在 outline;是否有空标题/重复标题;层级异常提示。
- 文本层与扫描件:检测每页可提取文本字符数与图像占比(启发式),给出“疑似扫描件/无文本层”提示。
- 阅读顺序风险:按文本块坐标(y 从上到下、x 从左到右)构建顺序;检测大幅跳跃、跨栏混排的风险,输出建议(例如提示多栏布局需要人工复核)。
- 异常字符:替换字符、不可见字符过多提示。
【报告格式】
- report.json:包含 summary(指标汇总)、issues(问题数组)、pages(每页统计)。
- report.html:可读的检查报告页面(不需要任何图片生成),包含目录、筛选(按严重级别/页面)。
【边界与说明】
- 如果 PDF 的标签树(Tagged PDF)无法可靠读取,请明确说明限制,并给出可行的替代检查项(例如用 outline、文本层、布局启发式来辅助判断)。
- 不要输出任何引导生成图片/插画/渲染图的内容。
现在开始生成项目。输出必须可直接复制到本地后运行成功。
交付物验收标准(建议写进项目 README)
1) 本地可跑:一条命令启动前后端;上传 PDF 后能生成报告并下载。
2) 可构建:前端 build 后可被后端托管或独立部署。
3) 可部署:提供 Dockerfile,并给出端口/环境变量说明。
4) 可测试:测试可执行且有明确断言;至少覆盖错误输入与典型 PDF。
5) 可解释:每条问题有原因、影响与修复建议。