HTML 打印格式是通过 HTML 和 Jinja 手工编写的。当打印格式编辑器无法生成你需要的布局时,就可以使用它。对于大多数格式来说,用编辑器更快,也更容易维护。
适用于 Frappe v16 及更高版本。
开始之前
你需要:
- 创建打印格式的权限;
- 熟练使用 HTML、CSS 和 Jinja 模板。
创建 HTML 格式
- 打开打印格式列表,点击添加打印格式。
- 选择文档类型并输入名称。
- 将起始方式设为HTML,然后点击创建。
- 在 HTML 中编写模板并保存。
如果你想随应用一起发布某个格式,请开启开发者模式并勾选标准。这样该格式就会作为文件保存在应用中,并由 git 跟踪。
编写模板
文档可通过 doc 获取:
<h2>{{ doc.select_print_heading or _("Sales Invoice") }}</h2>
<p>{{ doc.customer_name }}</p>
<table class="table table-bordered">
<tr><th>{{ _("Item") }}</th>
<th class="text-right">{{ _("Amount") }}</th></tr>
{% for row in doc.items %}
<tr>
<td>{{ row.item_name }}</td>
<td class="text-right">{{ row.get_formatted("amount", doc) }}</td>
</tr>
{% endfor %}
</table>
_("text")将文本翻译为打印语言。doc.get_formatted("fieldname")按照表单显示的方式格式化值,包括货币和日期格式。frappe.get_doc、frappe.db.get_value以及其他辅助函数均可使用。请参阅 Jinja API。- 在该格式的自定义 CSS字段中添加样式。
报表的打印格式
脚本报表和查询报表可以有自己的打印格式,使用 JavaScript 模板编写。请参阅报表的打印格式。
PDF 引擎
HTML 格式使用打印设置中设置的PDF 生成器。wkhtmltopdf 无法排版 flexbox 等现代 CSS,而且已不再维护,因此除非某个格式依赖 wkhtmltopdf,否则请使用 chrome。
相关主题
- Jinja API
- 从其他文档获取信息
- PDF 生成