Awesome Deck PDF
v1.0.0可以将来自PPTX、图像、URL或描述的任意设计风格转换为精致的HTML幻灯片,并以像素完美的PDF演示文稿形式导出。
详细分析 ▾
运行时依赖
安装命令
点击复制技能文档
HTML → PDF 幻灯片工作流程 ‼️ STOP — 在做任何事情之前请阅读 在编写一行代码或 HTML 之前,您必须完成以下两个确认步骤。请勿在获得每个明确用户批准之前继续。
确认 1/2:设计风格 分析用户的输入(图像/URL/关键词/.pptx),然后显示设计规格摘要并询问: 我从 [来源] 中提取了以下设计风格: 背景:#000 黑色 / 强调:#2997FF 蓝色 字体:SF Pro Display,超大标题,极简白空间 风格:黑色 Keynote,发光效果 这是否符合您的期望?在开始之前需要进行任何更改?
如果用户提供了网站 URL 且获取失败(假 IP、登录墙等): 说明失败的原因 询问:“您能发送几个网站截图吗?我将从中分析设计。” 不要假设或默认任何风格 等待明确批准 → 然后转到确认 2。
确认 2/2:幻灯片内容 询问用户是否有现有材料: 您有参考材料用于内容吗?(现有 PPT、文档、数据、要点 — 任何内容都可以) 如果是,则发送过来。如果不是,则我将为您草拟一个大纲。 收到回复后,准备一个编号列表:幻灯片标题 + 每张幻灯片的一行摘要。 显示并询问: 这是计划结构 — 看起来正确吗?需要添加、删除或更改任何内容? 等待明确批准 → 然后开始生成 HTML。
如果跳过任一确认,则工作流程将被破坏。 从确认 1 开始重新开始。
export_pdf.js 自动检测 Chrome 的顺序: Puppeteer 捆绑的 Chromium(npm install puppeteer) 系统 Chrome/Chromium(macOS:/Applications/Google Chrome.app,Linux:/usr/bin/chromium) 如果两个都找不到 → 打印明确的错误信息并附带安装说明,退出
如果 npm install puppeteer 失败(沙盒/网络限制): # 选项 A:跳过 Chromium 下载,单独安装 npm install puppeteer --ignore-scripts npx puppeteer browsers install chrome # 选项 B:使用 puppeteer-core(无捆绑 Chrome 下载) npm install puppeteer-core # 脚本将自动找到系统 Chrome # 选项 C:先安装系统 Chrome,然后运行脚本 # macOS:brew install --cask google-chrome # Linux:sudo apt install chromium-browser npm install puppeteer-core
请勿回退到 wkhtmltopdf、pdfkit、weasyprint 或任何其他工具。
对于 OpenClaw、Claude Code、Codex 和 Linux/macOS 设置的完整安装说明,请参阅 references/install.md。
工作流程概述 用户输入(图像/网站 URL/风格关键词/.pptx 文件)↓ 步骤 1:提取设计规格 → 确认用户 ↓ 步骤 2:概述幻灯片内容 → 确认用户 ↓ 步骤 3:生成 HTML → 保存 slides.html 到磁盘 ↓ 步骤 4:运行 export_pdf.js → 输出 slides.pdf
slides.html 和 slides.pdf 必须作为最终输出存在。
⚠️ 两个强制确认门槛(永远不要跳过) 门槛 1:设计风格 在分析输入后,显示提取的设计规格摘要并询问确认: 我从 [来源] 中提取了以下内容: 背景:#000000 黑色 · 强调:#2997FF 苹果蓝 字体:SF Pro Display,超大中心标题 风格:黑色 Keynote,发光效果 这是否符合您想要的风格?需要进行任何调整?
⚠️ 如果网站获取失败(例如假 IP/登录墙): 告诉用户为什么失败 询问截图:“您能发送几个网站截图吗?我将从中分析设计。” 永远不要假设或默认任何风格 — 等待用户确认后再继续
网站分析优先级: Puppeteer 截图 → 视觉分析(最准确) web_fetch 页面内容 → CSS/字体提取 询问用户发送截图
门槛 2:幻灯片内容 首先询问用户是否有现有材料: 您有参考材料用于内容吗?例如现有 PPT、文档、报告或关键点列表? 发送过来,我将结构化幻灯片 — 否则我将为您草拟一个大纲。 收到回复后,准备每张幻灯片的一行摘要并确认,然后生成 HTML。
步骤 1:提取设计规格 → DESIGN.md 支持的输入: 输入 方法 .pptx 模板 使用 python-pptx 解析:提取颜色、字体、背景、占位符布局(最准确) 图像/截图 视觉分析:颜色、字体样式、间距、组件模式 网站 URL Puppeteer 截图 + getComputedStyle 字体/颜色提取 风格关键词 使用品牌知识:Apple → SF Pro,Notion → Inter,Linear → Inter,Google → Google Sans
从 .pptx 中提取: from pptx import Presentation prs = Presentation("template.pptx") slide = prs.slides[0] for shape in slide.shapes: if shape.has_text_frame: for para in shape.text_frame.paragraphs: for run in para.runs: print(run.font.name, run.font.size, run.font.color.rgb, run.font.bold)
将提取的值填入 DESIGN.md(请参阅 references/DESIGN_TEMPLATE.md): 颜色:主背景、次背景、文本 ...