Frappe 框架对为文档生成打印格式并将其转换为 PDF 提供了一流的支持。Frappe 使用 Jinja 作为打印格式的模板语言。
打印视图
可以从任何文档的表单视图中访问打印视图。系统会根据表单布局和其中的必填字段,为所有 DocType 生成标准打印格式。 打印视图
打印格式构建器
要自定义打印格式,您需要创建标准打印格式的副本,并使用打印格式构建器对其进行自定义。这些打印格式可由用户编辑,并且不会作为文件与应用捆绑在一起。
打印格式构建器
自定义 HTML
您还可以向打印格式中添加自定义 HTML。只需将左侧边栏中的“自定义 HTML”按钮拖放到您的打印格式编辑器中即可。
在“自定义 HTML”字段中,您可以使用任何有效的 HTML,并使用 Bootstrap 3 类进行样式设置。您还可以使用 Jinja 模板为 HTML 添加动态内容。请参阅可在 Jinja 模板中使用的方法列表。
自定义 HTML
自定义 CSS
要更改打印格式的样式,您还可以添加自定义 CSS。
点击“自定义”> “编辑属性”以添加自定义 CSS
自定义 CSS
自定义 CSS 预览
高级打印格式
如果您想完全更改打印格式的布局,打印格式构建器的功能就会受到限制。您还可以从头开始编写自己的 HTML,并构建您想要的打印布局。
要创建新的打印格式,请在 AwesomeBar 中输入“new print format”并按回车键。
- 为您的格式选择一个唯一的名称。
- 将“标准”设置为“否”。
- 勾选“自定义格式”。
- 将打印格式类型选择为“Jinja”。
- 编写您的自定义 HTML。
如果您将“标准”设置为“是”并且启用了开发者模式,那么系统将为您的打印格式生成一个 JSON 文件,并且您必须将其与您的应用一起检入到版本控制中。
打印格式中的自定义 HTML
报表的打印格式
Frappe 允许您为查询和脚本报表创建自定义打印格式。这些打印格式无法通过用户界面创建。
要为报表创建打印格式,请在报表文件夹中创建一个名为 {report-name}.html 的 HTML 文件。
例如,请查看总账。
JS 模板
这些打印格式是在客户端生成的,因此我们不能使用 Jinja。我们使用 John Resig 模板的改编版本。它看起来与 Jinja 类似,因此您无需学习任何新内容。
以下是 JS 模板的片段。
{% for(var i=0, l=data.length; i<l i>
{% if(data[i].posting_date) { %}
{%= frappe.datetime.str_to_user(data[i].posting_date) %}
{% if(!(filters.party || filters.account)) { %}
{%= data[i].party || data[i].account %}
<br>
{% } %}
{{ __("Against") }}: {%= data[i].against %}
<br>{%= __("Remarks") %}: {%= data[i].remarks %}
{% } else { %}
<b>{%= frappe.format(data[i].account, {fieldtype: "Link"}) || " " %}</b>
{%= data[i].account && format_currency(data[i].debit, filters.presentation_currency) %}
{% } %}
{% } %}
</l>