PPT 转 HTML 高保真

SKILL效率
效率 未标注权限 许可证不明确
安装这个技能

把已有的 .pptx 幻灯片 1:1 高保真转成单文件 HTML 演示稿(保配色/版式/字号/圆角/底图)。当用户说'把这个 PPT 转成 HTML''PPT 转网页版''做成 HTML 幻灯片'并且手上有现成 pptx 文件时使用。区别于 html-ppt-skill(从零创作)——本技能专治'已有 PPT 要复刻'。

一句话选型结论

按资料字段整理

PPT 转 HTML 高保真是效率类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类效率 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_50119a89/pptx-to-html-faithful
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

效率
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_50119a89仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791621835
正文体量5.6 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
整理待办与日程

把零散任务收进清单,排出优先级。

批量处理重复任务

把固定动作做成模板,重复执行。

把流程写成清单

把口头流程整理成可复用的步骤。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在效率场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
PPT 转 HTML 高保真当前 未标注权限 未标注 未标注 未标注 有
Nano PDF 文档 联网访问 ClawHub 市场 424.9 万 OpenClaw 有
自动更新程序 浏览器控制 ClawHub 市场 296.4 万 OpenClaw 有
Gemini 助手 联网访问 ClawHub 市场 254.7 万 OpenClaw 有
word DOCX 文档 联网访问 ClawHub 市场 239.6 万 OpenClaw 有
Excel XLSX 前端 联网访问 ClawHub 市场 227.0 万 OpenClaw 有

SKILL.md 全文

5.6 KB
模型实际读到的说明书原文,来自技能仓库

PPTX → 高保真单文件 HTML 演示稿

目标:不重新设计,只做忠实复刻。配色/位置/字号/圆角/底图全部照搬源稿。

分工

  • 本技能负责:解析源 pptx 设计规格 → 生成 HTML → 截图自检。
  • 排版规范(视口安全 16:9、导航 JS、打印导 PDF、主题/字体约束)沿用 html-ppt-skill 模块 A,不要重复造。
  • 交付形态默认只出 .html;用户明确要"可编辑/pptx"时再走 html-ppt-skill 的 B 分支。

五步流程

1. 提取文案与位置(python-pptx)

遍历 prs.slides[i].shapes,对每个 shape 打印:shape_type / name / left,top,width,height(转 inches:/914400)/ 段落文本 / run 字号pt / 字体名 / bold。
- 分组(shape_type==6)要递归进 sh.group.shapes。
- 表格走 shape.has_table。
- 同时读 slide.has_notes_slide 的备注。

2. 提取配色 / 渐变 / 圆角 / 自定义路径(zipfile + 正则)

直接读 ppt/slides/slideN.xml:

import zipfile, re
z = zipfile.ZipFile(pptx)
c = z.read(f"ppt/slides/slide{si}.xml").decode("utf-8", "ignore")
re.findall(r'srgbClr val="([0-9A-Fa-f]{6})"', c)          # 配色直方图(Counter 取 top20)
re.search(r'<a:gradFill>.*?</a:gradFill>', c, re.S)       # 渐变:gs 位置 + alpha + <a:lin ang>
re.search(r'<a:lin ang="(\d+)"', g)                       # OOXML 角度
re.search(r'prstGeom prst="(\w+)"', blk)                  # 形状类型
re.search(r'<a:gd name="adj" fmla="val (\d+)"/>', blk)    # roundRect 圆角比例
re.findall(r'algn="(\w+)"', blk)                          # 段落对齐(ctr/l/r)
re.search(r'<a:custGeom>.*?</a:custGeom>', blk, re.S)     # freeform 路径(判断细线/竖条)

关键换算:
- 渐变角度:CSS 角度 = 90 + OOXML_ang / 60000(OOXML 0° = 向右、顺时针)。
- 圆角半径(in) = adj/100000 × min(w,h)(PPT roundRect 默认 adj=16667)。
- custGeom 里 path 为 w=1140 h=40 且点集在 y=0..1 → 是顶部 1px 细线;点在 x=0..4 → 是左侧竖条。这类"任意多边形"几乎都是分隔线,不要当色块画。

3. 处理底图(通常带 AI 水印)

ppt/media/imageN.png 是整页底图;AI 生成的图右下角常有「AI生成 XXX」水印。
用 PIL 裁掉右下角(约 8–9%)后压 JPEG q82,再 base64 内嵌:

im = Image.open(p).convert("RGB"); W,H = im.size
im.crop((0,0,int(W*0.918),int(H*0.902))).resize((1600, 1047), Image.LANCZOS)\
  .save(out, "JPEG", quality=82, optimize=True)

background-size:cover 会再裁掉上下边,水印区域彻底出框。

4. 生成 HTML(单位体系是关键)

slide 固定 16:9,不要用 px、也不要用 cqw(兼容性风险):

.slide{
  position:relative; width:min(100vw,177.78vh); height:min(56.25vw,100vh);
  margin:0 auto; overflow:hidden; scroll-snap-align:start; scroll-snap-stop:always;
  --s:min(1vw,1.7778vh);          /* --s = 幻灯片宽的 1% */
}
.slide>div{position:absolute}      /* ★ 必加:否则裸 div 不定位 */

英寸 → calc(var(--s)*in*7.5);磅值 → calc(var(--s)*pt*0.104167)(13.3333in 宽推导)。
所有元素 position:absolute + left/top/width,高度留 auto(浏览器字体度量与 PPT 不同,写死高度会裁字)。
行高:标题 1.1–1.15、正文 1.35–1.5。

坑(务必检查):
- 裸 <div style="left/top/..."> 没有 position:absolute 就完全不定位 → 圆点、卡片底板、灰底行全部消失。加 .slide>div{position:absolute} 一次性解决。
- 卡片里两行标题时正文 top 要下沉(1 行标题 +0.33in、2 行 +0.71in),否则重叠。
- 中文字体:HTML 侧 'Noto Sans SC','Microsoft YaHei','PingFang SC',sans-serif(PPT 的微软雅黑在浏览器/非 Windows 环境不一定有)。
- 页码等页脚元素严格照抄源稿位置和内容(源稿总页数可能是全稿数,如 09 / 71),不要自己换算成当前页数。

5. 截图自检(playwright)

from playwright.async_api import async_playwright
b = await p.chromium.launch(channel="chrome")      # 或 "msedge";失败再退回自带 chromium
pg = await b.new_page(viewport={"width":1600,"height":900})
await pg.goto("file:///D:/path/deck.html"); await pg.wait_for_timeout(2500)
for i in range(await pg.locator(".slide").count()):
    el = pg.locator(".slide").nth(i); await el.scroll_into_view_if_needed()
    await pg.wait_for_timeout(700); await el.screenshot(path=f"shots/slide{i+1}.png")

逐页看图,重点核对:底板色块是否出现、文字有无重叠/溢出、渐变方向对不对。

交付

  • 输出到当前项目工作区,用 present_files 交付 .html。
  • 附带一句说明:源 pptx 共 N 页、HTML 是自包含单文件、Ctrl+P 可导 PDF(取消勾选页眉页脚)。

常见问题

5 问
答案由本站依据条目字段整理
PPT 转 HTML 高保真怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_50119a89/pptx-to-html-faithful。安装方式为未标注。装完刷新技能列表或重开客户端。

PPT 转 HTML 高保真支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

PPT 转 HTML 高保真权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

PPT 转 HTML 高保真收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

PPT 转 HTML 高保真用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。