
BreezyPDF Lite是一个基于无头Google Chrome的HTML转PDF服务,可快速部署。通过提交HTML内容,即可获取由Chrome渲染的PDF文件。适用于Web应用、命令行工具等场景,支持自定义PDF配置和动态内容渲染。
通过POST请求提交HTML内容,获取PDF文件。需使用私有令牌进行身份验证。
示例(curl命令):
shcurl -X POST -H 'Authorization: Bearer PRIVATE_TOKEN_DEFINED_IN_SERVER_ENVIRONMENT' \ http://url-of-your-breezy-pdf-lite-server/render/html \ -d "`curl https://raw.githubusercontent.com/danielwestendorf/breezy-pdf-lite/master/sample.html`" \ -o example.pdf
在提交的HTML中添加meta标签自定义PDF参数,支持以下配置:
| 标签名称 | 默认值 | 描述 |
|---|---|---|
| breezy-pdf-filename | output.pdf | PDF文件名 |
| breezy-pdf-width | 8.5 | 页面宽度(英寸) |
| breezy-pdf-height | 11 | 页面高度(英寸) |
| breezy-pdf-cssPageSize | false | 是否使用CSS定义的页面尺寸 |
| breezy-pdf-marginTop | 0.4 | 上页边距(英寸) |
| breezy-pdf-marginRight | 0.4 | 右页边距(英寸) |
| breezy-pdf-marginBottom | 0.4 | 下页边距(英寸) |
| breezy-pdf-marginLeft | 0.4 | 左页边距(英寸) |
| breezy-pdf-landscape | false | 是否横向打印 |
| breezy-pdf-scale | 1 | 视口缩放比例 |
| breezy-pdf-displayBackground | false | 是否渲染HTML背景 |
示例:
html<meta name="breezy-pdf-width" content="10"> <meta name="breezy-pdf-landscape" content="true">
通过HTML模板定义页眉页脚,支持以下动态类:
| CSS类名 | 描述 |
|---|---|
| date | UTC格式的渲染日期 |
| title | 文档标题(取自HTML的title标签) |
| pageNumber | 当前页码 |
| totalPages | 总页数 |
注意:模板中的图片需使用DataURI编码,样式需内联定义。
指定内容加载完成的触发条件,默认使用5000ms定时器。支持以下方式(按优先级排序):
4.1 回调函数
定义全局回调函数,内容加载完成时调用:
html<meta name="breezy-pdf-callback" content="myWorkHereIsDoneCallback"> <meta name="breezy-pdf-timeout" content="3000"> <!-- 超时时间(ms),默认5000 -->
jsfunction() { // 业务逻辑处理 window.myWorkHereIsDoneCallback(); // 调用回调通知渲染完成 }
4.2 事件触发
监听指定元素的自定义事件:
html<meta name="breezy-pdf-event" content="myCustomEvent"> <meta name="breezy-pdf-element" content="#myContainer"> <!-- 元素选择器,默认document --> <meta name="breezy-pdf-timeout" content="3000">
jsvar event = new CustomEvent('myCustomEvent'); document.getElementById('myContainer').dispatchEvent(event);
4.3 元素检测
检测指定CSS选择器的元素是否存在:
html<meta name="breezy-pdf-element" content="#last-page > #last-element"> <meta name="breezy-pdf-timeout" content="3000">
js// 动态创建目标元素 var lastElement = document.createElement('div'); lastElement.id = 'last-element'; document.getElementById('last-page').appendChild(lastElement);
4.4 变量检测
检测全局变量是否定义:
html<meta name="breezy-pdf-variable" content="myWorkHereIsDoneVariable">
js// 内容加载完成后定义变量 window.myWorkHereIsDoneVariable = true;
4.5 定时器
固定等待时间后渲染:
html<meta name="breezy-pdf-timer" content="10000"> <!-- 等待10秒 -->
shdocker run -it -p 5002:5002 \ -e "DEBUG=breezy-pdf-lite:*" \ -e "PORT=5002" \ -e "PRIVATE_TOKEN=YOURSUPERSECRETTOKEN" \ danielwestendorf/breezy-pdf-lite:latest
点击下方按钮一键部署: 
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务