打印

本页介绍的是 16 版本之前的打印功能。16 版本及之后的版本,请参阅打印。

  • 打印文档
  • 打印格式编辑器
  • HTML 打印格式
  • PDF 生成

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 允许你为查询报表和脚本报表创建自定义打印格式。这些打印格式无法通过 UI 创建。

要为报表创建打印格式,请在报表文件夹中创建一个名为 {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>