
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
DeckTape 是一个高质量的HTML演示框架PDF导出工具,基于Puppeteer构建,利用Google Chrome进行网页布局和渲染,并通过JavaScript API控制无头Chrome实例。它支持多种主流HTML演示框架,提供通用模式以适应几乎任何框架,并具备插件扩展架构,还可选择捕获不同分辨率的幻灯片截图。
DeckTape 原生支持以下演示框架:
DeckTape Docker镜像可从Docker Hub获取:
bashdocker pull astefanutti/decktape
bashdocker run [选项] astefanutti/decktape [decktape选项] [命令] <演示文稿URL> <输出PDF文件名>
| 选项 | 描述 | 默认值 |
|---|---|---|
-s <size>, --size <size> | 幻灯片视口大小,格式为<宽度>x<高度> | - |
-p <ms>, --pause <ms> | 每张幻灯片导出前的延迟时间(毫秒) | 1000 |
--load-pause <ms> | 页面加载完成到开始导出的延迟时间(毫秒) | 0 |
--screenshots | 捕获每张幻灯片为图像 | false |
--screenshots-directory <dir> | 截图输出目录 | screenshots |
--screenshots-size <size> | 截图分辨率,可重复指定 | --size |
--screenshots-format <format> | 截图图像格式(jpg/png) | png |
--slides <range> | 导出幻灯片范围(如'1-3,5,8') | - |
--chrome-path <path> | Chrome/Chromium可执行文件路径 | - |
--chrome-arg <arg> | 传递给Chrome的额外参数,可重复 | - |
automatic(默认)
自动检测演示文稿使用的框架并选择兼容的插件进行导出。
generic
通过模拟按键交互导出幻灯片,需指定--key选项(默认ArrowRight),适用于不暴露API的框架:
bashdocker run --rm -v $(pwd):/slides astefanutti/decktape generic --key=ArrowDown <URL> slides.pdf
1. 转换在线演示文稿
将在线reveal.js演示转换为PDF并保存到当前目录:
bashdocker run --rm -t -v $(pwd):/slides astefanutti/decktape https://revealjs.com/demos/3.9.2 slides.pdf
2. 转换本地文件
转换本地HTML演示文稿(假设文件位于~/slides.html):
bashdocker run --rm -t -v $(pwd):/slides -v ~:/home/user astefanutti/decktape /home/user/slides.html slides.pdf
3. 转换本地服务器上的演示文稿
转换运行在本地8000端口的演示文稿:
bashdocker run --rm -t --net=host -v $(pwd):/slides astefanutti/decktape http://localhost:8000 slides.pdf
注意:在macOS和Windows上,可能需要使用
host.docker.internal代替localhost。
4. 捕获多分辨率截图
导出PDF的同时捕获400x300和800x600分辨率的截图:
bashdocker run --rm -v $(pwd):/slides astefanutti/decktape --screenshots --screenshots-size=400x300 --screenshots-size=800x600 <URL> slides.pdf
5. 导出指定范围的幻灯片
仅导出第1-3张和第5张幻灯片:
bashdocker run --rm -v $(pwd):/slides astefanutti/decktape --slides 1-3,5 <URL> slides.pdf
以下是使用DeckTape导出的演示文稿示例:
| HTML5演示文稿 | 框架 | 导出PDF |
|---|---|---|
| https://tdd.github.io/devoxx-es6-maintenant/ | reveal.js | https://astefanutti.github.io/decktape/examples/devoxx-es6-maintenant.pdf (2.3MB) |
| https://github.com/hakimel/reveal.js/blob/360bc940062711db9b8020ce4e848f6c37014481/test/examples/math.html | reveal.js | https://astefanutti.github.io/decktape/examples/reveal-js-mathjax.pdf (0.3MB) |
| Getting Involved in Open Source | reveal.js | https://astefanutti.github.io/decktape/examples/opensource-getting-involved.pdf (0.6MB) |
| http://astefanutti.github.io/further-cdi | Asciidoctor + DZSlides | https://astefanutti.github.io/decktape/examples/going-further-with-cdi.pdf (2.4MB) |
| Deck.js Modern HTML Presentations | deck.js | https://astefanutti.github.io/decktape/examples/deck-js-presentation.pdf (0.5MB) |
| The Official Remark Slideshow | remark | https://astefanutti.github.io/decktape/examples/remark-js-slideshow.pdf (0.15MB) |
使用--chrome-arg选项,例如设置代理:
bashdocker run --rm -v $(pwd):/slides astefanutti/decktape --chrome-arg=--proxy-server="proxy:8080" <URL> slides.pdf
某些Linux发行版默认禁用用户命名空间,可临时使用--no-sandbox选项:
bashdocker run --rm -v $(pwd):/slides astefanutti/decktape --chrome-arg=--no-sandbox <URL> slides.pdf
Chromium 64+对本地文件或外部样式表的CSS规则访问有CORS限制,可禁用Web安全:
bashdocker run --rm -v $(pwd):/slides astefanutti/decktape --chrome-arg=--disable-web-security <URL> slides.pdf
尝试使用-s选项指定特定视口大小,如-s 1024x768:
bashdocker run --rm -v $(pwd):/slides astefanutti/decktape -s 1024x768 <URL> slides.pdf
不要在URL中添加?print-pdf或加载打印样式表,DeckTape不依赖reveal.js的内置PDF支持。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务