适用范围
本文只提供“在线工具生成型 AI 提示词(Prompts)”。目标是让 AI 直接产出一个可运行/可构建/可部署的在线 PDF 工具项目,用于批量拆分、合并,并可基于规则重建书签。
交付目标
AI 产出内容必须包含:完整项目代码、清晰的文件结构、可复制执行的运行命令、部署说明,以及测试用例或 QA checklist。工具需支持多文件上传、队列处理、可下载结果包与处理报告。
功能要求(不涉及任何图片生成)
1)合并:按上传顺序或拖拽排序合并多个 PDF;可选统一页面尺寸策略(不做重排渲染,仅按原页拼接)。
2)拆分:按页码范围、按固定页数、按书签层级拆分;输出单个 PDF 或 zip 包。
3)书签重建:支持从“目录文本/大纲规则/页码映射”生成书签;可导入/导出书签 JSON;支持校验(页码越界、重复标题、层级异常)。
4)批处理:允许一次上传多个 PDF 批量执行同一规则;生成处理日志与摘要报告(JSON + 可读文本)。
5)安全与合规:不上传到第三方;默认仅本地处理(服务器内存/临时目录);提供最大文件大小、页数、并发限制配置。
Prompt(复制给 AI)
你是一名资深全栈工程师。请为我生成一个“在线 PDF 批量拆分/合并/书签重建工具”的完整项目,要求可以本地运行并可一键部署。
【输出必须包含】
- 完整源码(可直接复制粘贴到本地文件夹)
- 清晰的项目文件树(tree 形式)
- 本地运行命令(含依赖安装、启动)
- 生产部署说明(Dockerfile + 可选 docker-compose;以及无容器部署步骤)
- 测试用例或 QA checklist(覆盖核心流程与边界情况)
【技术栈约束】
- 前端:React + Type + Vite(或 Next.js 任选其一,但要说明理由)
- 后端:Node.js (Express/Fastify) + Type
- PDF 处理:优先使用成熟库(例如 pdf-lib / qpdf / mupdf 等);如果需要系统依赖,请在 Dockerfile 中安装,并在 README 里写清楚。
- 不要调用任何外部在线 API;不上传到第三方。
【核心功能】
1) 合并
- 多文件上传,支持拖拽排序
- 输出 merged.pdf
- 生成处理报告 report.json(包含输入文件名、页数、合并顺序、耗时)
2) 拆分
- 支持三种拆分模式:
a. 按页码范围列表(如: 1-3,4-10,11-)
b. 按固定页数(如每 5 页一个文件)
c. 按书签层级拆分(可指定层级 depth)
- 输出为 zip(包含 split-001.pdf... 与 report.json)
3) 书签重建
- 支持从 JSON 导入书签( , pageIndex, level)
- 支持从“规则文本”生成书签:
- 输入多行文本,每行格式:level| |page (page 从 1 开始)
- 校验:页码越界、重复标题、层级跳变(例如从 level 1 直接跳到 level 4)都要提示
- 可将生成的书签写回 PDF(生成 new.pdf),并可导出 bookmarks.json
4) 批处理
- 支持一次上传多个 PDF,对每个 PDF 应用相同的拆分/书签规则
- 提供队列与进度(WebSocket 或 SSE)
- 默认并发=2,可配置
【接口设计】
- POST /api/merge (multipart)
- POST /api/split (multipart + mode + params)
- POST /api/bookmarks/validate (json)
- POST /api/bookmarks/apply (multipart + bookmarks json)
- POST /api/batch (multipart + jobSpec json)
- GET /api/jobs/:id (进度)
- GET /api/jobs/:id/download (结果包)
【前端页面】
- /merge 页面:上传 + 排序 + 合并 + 下载
- /split 页面:模式选择 + 参数输入 + 预览(仅显示将生成的文件列表与页码范围,不渲染图片)
- /bookmarks 页面:导入/编辑/校验/应用书签
- /batch 页面:批处理任务创建 + 进度 + 下载
- 所有页面需要有错误提示与空态提示;上传大文件时要有进度条。
【边界与安全】
- 限制单文件大小、总大小、最大页数(可在 .env 中配置)
- 临时文件清理策略(定时清理或任务完成即清理)
- 防止路径穿越与任意文件写入
【测试与验收】
- 至少提供:
- 单元测试:书签校验逻辑(越界、重复、层级跳变)
- 集成测试:merge/split 接口基本可用(可用小样例 PDF 或在测试中动态生成 PDF)
- 最后给出一份 QA checklist:包含正常流程、异常参数、超大文件、并发、取消任务等。
【交付格式】
- 先输出项目简介与关键设计决策
- 再输出完整文件树
- 然后按文件逐个给出代码内容(每个文件一个小节,保持路径一致)
- 最后输出 README(运行、部署、测试、常见问题)
使用建议
把上面的 Prompt 原样复制给你常用的代码生成型 AI(支持长输出的模型更好)。拿到项目后,先按 README 本地启动跑通,再用 QA checklist 逐条验收,最后再部署到内网或自有服务器。