如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
通过Web服务器将HTML转换为PDF。
这是一个简单的Express服务器,监听POST请求,接收任意HTML内容并将其转换为PDF,用于生成精美的报告。
使用的技术:
提供适用于ARM和AMD架构的镜像。
以下示例(可直接复制粘贴到shell解释器中)将在端口3000上运行服务,并将简单的HTML文档转换为PDF。
docker run --name html2pdf --detach --publish=3000:3000 --memory 500M ghcr.io/ccjmne/puppeteer-html2pdf:latest
# 首次启动时可能需要几秒钟预计算字体缓存
until curl -q localhost:3000 >/dev/null 2>&1; do sleep 0.1; done
# 或快速测试(按Ctrl-C终止):
# docker run -it --rm -p=3000:3000 ghcr.io/ccjmne/puppeteer-html2pdf:latest
curl localhost:3000 -H 'Content-Type: text/html' --data '
Hello World!
I love deadlines. I like the whooshing sound they make as they fly by.
— Douglas Adams
'
> out.pdf && xdg-open out.pdf
| 名称 | 描述 | 默认值 |
|---|---|---|
| BODY_LIMIT | 请求体最大大小。传递给https://github.com/expressjs/body-parser#limit%E5%92%8C%60express.json%60%E3%80%82 | 1mb |
| BROWSER_KEEPALIVE | 共享浏览器实例在闲置多长时间(毫秒)后关闭。 | 30000(30秒) |
| CHROMIUM_ARGS | 传递给底层Chromium实例的标志。 | --disable-web-security --no-sandbox --disable-setuid-sandbox |
PDF信息字典的属性也可通过查询参数控制,包括:
| 参数 | 描述 |
|---|---|
title | 文档标题 |
author | 文档创建者姓名 |
subject | 文档主题 |
keywords | 与文档关联的关键字 |
creator | 如果文档是从其他格式转换为PDF的,指创建原始文档的合规产品名称 |
producer | 如果文档是从其他格式转换为PDF的,指将其转换为PDF的合规产品名称 |
creationDate | 文档创建日期和时间 |
modDate | 文档最近修改的日期和时间 |
其中五个参数提供默认值:
| 参数 | 默认值 |
|---|---|
title | 第一个(或唯一的)HTML文档或网页的标题 |
creator | 通过Puppeteer生成PDF的Chromium驱动程序全名和版本 |
producer | 本应用程序的名称和版本 |
creationDate | 当前日期和时间 |
modDate | 当前日期和时间 |
添加字体的最简单方法是将包含所需字体的卷挂载到容器内的/usr/share/fonts目录。
# 获取字体
longcang=$(curl -L 'https://fonts.googleapis.com/css2?family=Long+Cang' | grep -Po '(?
我也支持自定义字体!
鉴于对人类家庭所有成员的固有尊严及其平等的和不移的权利的承认,乃是世界自由、正义与和平的基础
'
> out.pdf && xdg-open out.pdf
Web服务器监听您选择的端口(参见快速开始部分),并公开以下两个端点:
单页文档,默认设置(格式:A4,方向:portrait):
| 单页文档 | 多页文档 | 要渲染的URL列表 | |
|---|---|---|---|
| 请求路径 | / | /multiple | /url |
| 请求方法 | POST | POST | POST |
Content-Type头 | text/html | application/json | text/plain |
| 请求体 | HTML内容 | 包含HTML字符串的JSON数组 | 每行一个绝对URL |
| 请求体(示例) | Hello World! | [" Page 1 ", " Page 2 " ] | https://google.com |
所有端点均支持以下查询参数:
filename:生成的PDF文件名(如果缺少,将自动追加.pdf扩展名)onepage:true表示强制为每个URL或HTML文档创建单个(可能很大的)页面。如果设置,将覆盖format和landscapetrapped除外):
titleauthorsubjectkeywords(可提供多个,例如:?keywords=travelling&keywords=korea&keywords=beautiful)creatorproducercreationDate(按ISO-8601解析,例如:2025-12-28)modDate(按ISO-8601解析,例如:2025-12-28)pathheaderTemplatemargin单页文档,默认设置(格式:A4,方向:portrait):
curl 'http://localhost:3000' \
-H 'Content-Type: text/html' \
-d ' Hello World! ' \
> out.pdf && xdg-open out.pdf
单页文档(格式:A3,方向:landscape):
curl 'http://localhost:3000?format=a3&landscape=true' \
-H 'Content-Type: text/html' \
-d ' Hello World! ' \
> out.pdf && xdg-open out.pdf
指定信息字典:
curl 'http://localhost:3000?author=ccjmne&title=Hello+World' \
-H 'Content-Type: text/html' \
-d ' Hello World! ' \
> out.pdf && xdg-open out.pdf
多页文档:
curl 'http://localhost:3000/multiple' \
-H 'Content-Type: application/json' \
-d '[
" Hello World! ",
"This is the second page"
]' \
> out.pdf && xdg-open out.pdf
将网页转换为PDF:
curl 'http://localhost:3000/url?onepage=true' \
-H 'Content-Type: text/plain' \
-d 'https://justinjackson.ca/webmaster/' \
> out.pdf && xdg-open out.pdf
将多个网页转换为单个PDF:
curl 'http://localhost:3000/url?onepage=true' \
-H 'Content-Type: text/plain' \
-d '
' \
> out.pdf && xdg-open out.pdf
每次GitHub Release时自动构建并发布到GitHub Packages(GitHub容器注册表)。
包含一个全面的脚本,可用于构建和发布镜像的新版本:./compose.sh
MIT。随意使用。 有关更多详情,请参阅LICENSE文件。
来自真实用户的反馈,见证轩辕镜像的优质服务