打印

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”并按回车键。

  1. 为您的格式选择一个唯一的名称。
  2. 将“标准”设置为“否”。
  3. 勾选“自定义格式”。
  4. 将打印格式类型选择为“Jinja”。
  5. 编写您的自定义 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>