📦 Html Ppt To PdfConvert — HTML、PPT 转 PDF

v1.0.0

将任何使用 `<section class="slide">` 约定的 HTML 幻灯片,通过 Playwright + Chromium 原生 `pa...` 转换为高保真、矢量文本 PDF

0· 15·0 当前·0 累计
dtacheng 头像by @dtacheng (DTacheng)
下载技能包
最后更新
2026/4/20
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
安全
high confidence
该技能的代码、说明和要求与其声明的用途(使用 Playwright/Chromium 将 HTML 幻灯片转换为矢量 PDF)一致;它不要求任何密钥,也不存在明显的数据外泄或无关功能。
评估建议
该技能的功能如其所述:使用 Playwright/Chromium 将 HTML 幻灯片(section.slide 约定)转换为矢量 PDF。安装或运行前请注意: 1) npm install + Playwright 会下载大型浏览器二进制文件(约 100–300 MB),请在可接受此体积的环境中操作。 2) 脚本会读取输入 HTML 及其可访问的本地资源(包括 ~/.myagents/skills/html-ppt 中的重映射资源),并可能联网加载字体/资源;若 HTML 引用了不希望被获取的远程资源,请本地托管字体或离线运行。 3) 若对运行第三方 Node 代码有顾虑,请自行审查 scripts/html-to-pdf.mjs 或在沙箱/容器中运行。 4) 技能不请求任何密钥或外部端点,仅在本地记录页面错误/失败请求;分享前请验证输出(PDF 内容、嵌入字体)。 总体而言,其占用与行为与声明目的相符。...
详细分析 ▾
用途与能力
名称/描述与提供的代码和 SKILL.md 一致。脚本使用 Playwright/Chromium 渲染 HTML 幻灯片,并针对已知幻灯片框架应用多项定向 CSS/JS 修复;对 Playwright 和 pdf-lib 的 npm 依赖与任务规模成正比(浏览器驱动的 PDF 生成及可选 PDF 后处理)。
指令范围
运行时指令与脚本始终局限于转换任务:加载本地 HTML 文件,调整 CSS/DOM 以强制打印友好布局,并输出 PDF。脚本会读写文件系统(读取输入 HTML,写入输出 PDF),并尝试加载 HTML 引用的网络字体/资源。它还会重映射指向 ~/.myagents/skills/html-ppt 下本地 html-ppt 安装的资源路径——这符合声明用途,但意味着该 skill 会访问用户主目录下的文件。
安装机制
注册表中没有自动安装配置;SKILL.md 指示用户运行 npm install 和 npx playwright install chromium。这会下载 Playwright 以及(可选的)Chromium 二进制文件(数百 MB)。所有显示的包源均为标准 npm 注册表/镜像,不存在来自短链接或个人服务器的下载。
凭证需求
该 skill 未声明任何必需凭据或敏感环境变量。它仅读取标准环境变量(HOME 或 USERPROFILE)以定位用户的 skill 目录,并可在 CLI 中设置或传入 HTTPS_PROXY/HTTP_PROXY 时使用——此举用于获取远程字体/资源,已在 SKILL.md 中说明。
持久化与权限
该技能并非始终启用,也不会请求提升或持久的平台权限。它仅写入输出 PDF,并可读取本地技能资源文件夹;不会修改其他技能的配置或系统级设置。
安全有层次,运行前请审查代码。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/4/20

html-ppt-to-pdf 初始发布 - 将使用 `<section class="slide">` 的 HTML 幻灯片转换为高保真、矢量文本 PDF - 支持来自 `html-ppt`、`frontend-slides`、`frontend-design` 或任何遵循该约定的自定义 HTML - 文本保持可选,字体子集嵌入;页面尺寸与页码与原幻灯片一致 - 自动修复缺失内容、字体错误、页码错乱等常见问题 - 不适用于普通网页、Markdown 或 `.pptx` 文件,请使用专用工具处理

无害

安装命令

点击复制
官方npx clawhub@latest install html-ppt-to-pdf
镜像加速npx clawhub@latest install html-ppt-to-pdf --registry https://cn.longxiaskill.com

技能文档

把 HTML 幻灯片转矢量 PDF。文字可选中可搜索(非栅格图),字体 subset 嵌入,页面尺寸与角标同原 HTML。

何时用

用户有 HTML 幻灯片需导出 PDF,典型来源:
  • html-ppt skill 输出(固定 1920×1080,含 runtime.js 注入 .slide-number
  • frontend-slides / frontend-design skill 输出(100vh 自适应,IntersectionObserver 触发 .visible 做 reveal 动画)
  • 手写/第三方 HTML,只要用 约定

已规避:字体不一致、页码“101/22”错乱、截图丢页/重页、frontend-slides 非首屏内容隐形(.reveal opacity:0)。

勿用于:普通网页存 PDF(浏览器打印即可);Markdown 转 PDF(用 pandoc/typst);.pptx 转 PDF(用 pptx skill 或 LibreOffice)。

输入约定

  • 输入:HTML 文件绝对路径
  • HTML 约定:每页 slide 用 ;若用其他 class(.deck-slide.page 等),加 --slide-selector
  • 默认尺寸:1920×1080。frontend-slides 类源码为 100vh 自适应,脚本强制 1920×1080 排版(16:9)
  • 输出:单页矢量 PDF,文字可选中,字体 subset 嵌入

调用方式

``bash # 首次使用装依赖(仅一次) cd ~/.myagents/skills/html-ppt-to-pdf/scripts npm install npx playwright install chromium # 仅兜底

# 执行转换 node ~/.myagents/skills/html-ppt-to-pdf/scripts/html-to-pdf.mjs

# 自定义尺寸 node ~/.myagents/skills/html-ppt-to-pdf/scripts/html-to-pdf.mjs input.html out.pdf --width 1280 --height 720 ` 强烈建议系统装 Chrome 或 Edge。脚本优先调用系统 Chrome/Edge 出 PDF——Playwright 自带 Chromium(build 1208)在 display:flex; flex-direction:column + 内联 opacity:0; transform:translateY() 的 reveal-card 结构下会丢内容,系统 Chrome 无此问题。未装则 fallback 到 bundled Chromium 并警告。

为何用此法(关键)

勿走“截图拼 PDF”。该路线(html-ppt/scripts/render.sh + ImageMagick)三硬伤:
  • PNG 栅格化文字,放大即糊
  • 逐页 hash+循环截图时序 bug,易丢首页/重尾页
  • runtime.js 动态页码与截图时序冲突

本 skill 用 Playwright page.pdf(),由 Chromium 排版引擎一次性输出多页矢量 PDF:

  • 字体:等 document.fonts.ready 后排版 → Chromium 将所用字形 subset 嵌入 /FontFile2
  • 分页:注入 @page + page-break-after CSS → 原生分页,无循环
  • 页码:自动修正 .slide-numberdata-current / data-total,解决 DOM 硬写文本与 CSS ::before/::after 叠加导致的“101/22” bug
  • 排版适配:
- deck 风格(html-ppt:所有 slide position:absolute;top:0)→ 强制 position:static 摊开 - flow 风格(frontend-slides:height:100vh)→ 用固定 px 覆盖 vh - reveal 动画(frontend-slides 的 .reveal + IntersectionObserver 加 .visible)→ 强制每张 slide 加 .visible,并把 .revealopacity/transform 设终态,避免非首屏隐形
  • 统一隐藏运行时 UI:.progress-bar.nav-dots.edit-toggle.edit-hotzone 等不入 PDF

验证

跑完后必验:
  • 页数 = HTML 中 数量,不多不少
  • 首页、末页与 HTML 一致
  • Adobe Reader 打开可选中复制文字(矢量嵌入)
  • 页面尺寸正确(Acrobat → 文件属性 → 页面大小)
  • 每页角标/页码存在

故障排查

~/.myagents/skills/html-ppt-to-pdf/README.md`。

数据来源ClawHub ↗ · 中文优化:龙虾技能库