Frappe 使用三种引擎之一将打印格式转换为 PDF。
适用于 Frappe v16 及更高版本。
| 引擎 | 用途 | 说明 |
|---|---|---|
| Chromium | 在编辑器中创建的格式(默认)、标准格式,以及当打印设置中指定为 chrome 时的 HTML 格式 | 能正确渲染现代 HTML 和 CSS。首次需要时会自动下载到 bench 的 chromium 文件夹中,也可以提前通过 bench setup-chrome 下载。 |
| Typst | 在编辑器中创建的格式,且 PDF 渲染器 设置为 Typst(快速) | 实验性功能。速度更快,适合批量打印。仅支持部分功能。 |
| wkhtmltopdf | 当打印设置中指定为 wkhtmltopdf 时的 HTML 格式 | 已不再维护。无法渲染多列或 flexbox 布局。仅为兼容旧版 HTML 格式而保留。 |
注意:wkhtmltopdf 在版本 17 中已被移除。所有 PDF 均由 Chromium 生成,设置为 wkhtmltopdf 的格式在迁移时会自动切换为 Chromium。
哪种引擎负责打印格式
- 在编辑器中创建的格式使用其自身的 PDF 渲染器 设置:Chromium 或 Typst。
- 其他格式如果设置了自身的 PDF 生成器,则使用该设置。
- 否则,使用打印设置中的 PDF 生成器。
Typst 无法打印的内容
在你选择 Typst 之前,编辑器会检查格式,并列出所有阻碍项:
- 自定义 HTML 块和字段模板;
- 格式或字段上的自定义 CSS,且使用了 Typst 无法转换的属性;
- 除二维码以外的条形码;
- 从网址加载的图片;
- 非十六进制颜色值;
- 带有自定义 CSS、HTML 或网络图片的信头。
如果使用 Typst 的格式之后出现了上述任一情况,打印会失败并给出明确的错误提示,而不会静默切换引擎。
故障排查
| 问题 | 需要检查的内容 |
|---|---|
| PDF 中列堆叠在一起 | 该格式是用 wkhtmltopdf 打印的。请在打印设置中将 PDF 生成器 设为 chrome。 |
| 第一个 PDF 耗时很长 | 正在下载 Chromium。之后的 PDF 会很快。 |
| 在没有网络的服务器上 PDF 生成失败 | 无法下载 Chromium。请在有网络的地方运行 bench setup-chrome,或在 common_site_config.json 中将 chromium_path 设置为已安装的 Chromium。 |
| PDF 中字体看起来不一样 | 在格式的 字体 中使用 Google Font 名称,以便 PDF 引擎能够加载它。 |
相关主题
- 打印格式编辑器
- 打印设置