这篇 Prompt 能生成什么
用一条可复制的 AI 提示词,让 AI 直接产出一个可运行/可部署的在线 PDF 工具:上传 PDF 后,自动生成目录书签(可选:按标题规则/页眉页脚/文本样式推断层级),并对书签页码与跳转目标做校验,最后导出修复后的 PDF 与一份可审计的校验报告(JSON/CSV)。
适用场景
适用于合同、标书、讲义、说明书等长文档的“目录缺失/目录错误/书签跳转不准”问题;也适用于批量入库前的质量检查:发现空白书签、重复标题、越界页码、跳转到错误页等。
Prompt(复制即用)
你是一名资深全栈工程师与 PDF 处理专家。请为我生成一个“在线 PDF 书签目录自动生成与页码校验”Web 工具的完整可运行项目(必须给出完整源码 + 文件树 + 本地运行命令 + 生产构建命令 + 部署说明 + 测试用例或 QA checklist)。
目标:用户上传 PDF 后,工具能够:
1) 自动生成目录书签:
- 支持 2-3 级层级;
- 允许用户选择“生成策略”:
A. 按正则匹配标题(如:^第[一二三四五六七八九十]+章|^\d+(\.\d+)*\s+)
B. 按字体大小/加粗等样式差异推断标题(基于 pdf.js 提取 text items 的 transform/height 近似判断)
C. 从现有目录页(TOC)解析(如果识别到“目录/Contents”页,提取条目与页码并映射)
- 对每个书签输出:标题、层级、目标页、置信度、命中规则;
2) 页码与跳转校验:
- 检查页码越界、跳转到空白页(可选:根据页面文字密度阈值判断)、重复标题、同标题不同页冲突;
- 给出修复建议(如:合并重复书签、调整到最近匹配页、标记为需要人工确认);
3) 导出:
- 导出修复后的 PDF(带书签/Outline);
- 导出报告 report.json + report.csv;
技术要求(硬性):
- 必须是“在线工具”形态:前端页面 + 后端 API;
- 前端:React + Vite + Type ,UI 用简洁组件(可用 shadcn/ui 或自写);
- 后端:Node.js + Express(或 Fastify)+ Type ;
- PDF 解析:使用 pdfjs-dist;PDF 写回/书签写入:使用 pdf-lib(说明如何创建 outline/书签,若 pdf-lib 对书签支持有限,请给出可行替代方案,并保证项目能跑通);
- 不要依赖任何外部付费 API;
- 安全:限制文件大小、校验 MIME、做基本的内容安全策略;
功能页面(必须实现):
- 上传区(拖拽上传)、预览区(分页预览/跳转)、策略选择与参数面板、生成与校验按钮;
- 结果区:书签树预览(可编辑标题/页码/层级)、问题列表(可筛选)、导出按钮;
交付物(必须输出):
- 完整项目文件树(逐文件列出路径);
- 关键文件的完整代码(不要省略为“略”);
- pnpm install / pnpm dev / pnpm build 的命令与脚本;
- .env.example;
- Dockerfile + docker-compose(可选但优先);
- 最少 6 条自动化测试(或一份覆盖全面的 QA checklist,包含边界条件:超大 PDF、扫描版、无目录、已有书签、混合语言、页码不连续等);
输出格式:
- 先给出一段实现思路;
- 再给文件树;
- 再逐文件贴代码;
- 最后给运行/部署/测试说明与常见问题排查。
实现要点(给 AI 的约束解释)
这条 Prompt 把“可运行交付物”写死:必须给源码、文件树、命令、部署、测试/QA;同时明确解析用 pdf.js、写回用 pdf-lib(如遇书签能力不足要求给可跑通替代方案)。这样能避免只给思路不落地。
验收清单
1) pnpm dev 可启动前后端并完成上传/生成/校验;2) 生成后的 PDF 在常见阅读器中能看到书签;3) report.json/report.csv 内容包含问题类型、定位页、建议动作;4) 输入非法文件会被拒绝;5) 至少覆盖 6 条测试或等价 QA checklist。