块

块是你在打印格式上放置的、不属于文档字段的内容:标题、徽标、二维码、来自客户记录的值,或者你自己的一段 HTML。本页介绍每一种块、它们的设置以及它们打印出来的效果。

适用于 Frappe v16 及更高版本。

添加块

打开左侧面板中的块选项卡。然后可以:

  • 将块拖拽到页面上你想要的位置,或者
  • 点击它。它会被添加到所选字段的下方。如果没有选中任何内容,它会进入最后一个分区。

放置之后,块就像任何字段一样可以被选中。它的设置会显示在右侧面板中,每个块的底部都有自定义 CSS和可见性,这样你可以为它设置样式,或者只在某些情况下打印它。

有哪些可用的块

块 用途
文本 固定文本:标题、备注、感谢语
图片 徽标、印章、签名、任何图片
条形码 来自字段或固定值的条形码或二维码
关联字段 来自关联文档的值,例如客户的税号
自定义表格 用你自己的模板排布的子表行
间隔 空白的垂直空间
分隔线 一条细水平线
自定义 HTML 你自己的 HTML 和 Jinja,用于其他块无法实现的内容
Typst 你自己的 Typst 标记。当 PDF 渲染器为 Typst 时,它会替代自定义 HTML。
分区 一个用于放置字段的新分区
分页符 开始新的一页

下面是其中几种在发票底部的样子:一个包含付款计划的自定义表格、一个包含客户税号的关联字段、一个二维码、一条分隔线和两个文本块。

这个列表取决于格式的PDF 渲染器。使用Chromium(默认)时,你会看到自定义 HTML。使用Typst时,你会看到Typst取代它的位置。请参阅页面设置和 PDF 渲染器。

文本

打印不来自文档的固定文本,例如“感谢您的惠顾”或“货物售出,概不退换”。

设置 作用
文本 要打印的文本。按 Enter 换行。
加粗 以粗体打印文本。
字体大小 以像素为单位的大小。留空则使用页面字体大小。
对齐 左对齐、居中或右对齐。

文本会按原样打印。当存在翻译时,它会被翻译成打印语言,但它不能包含字段值。要在句子中打印文档值,请使用自定义 HTML 块。

图片

打印一张图片:徽标、付款二维码图片、签名或印章。

设置 作用
上传图片 从你的电脑上传一张图片。它会保存在Home/Attachments中。上传后,按钮会显示为更换图片。
或图片 URL 使用来自网址的图片,而不是上传。
清除 移除图片。
大小 宽度,从 20 到 700 像素。新图片会以其自身宽度开始,最大 300 像素。
对齐 左对齐、居中或右对齐。

每次打印出来的图片都是一样的。要打印随文档变化的图片,例如物料图片,请从字段选项卡添加文档的图片字段,或者使用指向图片字段的关联字段。

注意:Typst 渲染器无法从网址加载图片。如果你使用 Typst,请改为上传图片。

条形码

打印条形码或二维码,例如将发票编号打印为条形码,或将付款链接打印为二维码。

设置 选项 作用
值来源 静态值、ID(名称)或文档的任意字段 条形码值的来源。ID(名称)使用文档的编号,例如 ACC-SINV-2026-00006。
值 文本 要编码的固定值。仅当值来源为静态值时显示。
格式 CODE128、CODE39、QR CODE128是数字和字母的常用选择。CODE39用于较旧的扫描仪。QR生成方形二维码。
大小 40 到 500 像素 码的宽度。
值文本 开、关 在条形码下方以纯文本形式打印值。二维码不显示此内容。
对齐 左对齐、居中、右对齐

二维码最多可容纳 2000 个字符,因此完整的网址也能放得下。

如果文档中已有条形码字段,你可以改为从字段选项卡中拖入该字段。其格式来自字段自身的设置,且只能更改大小。

注意:Typst 渲染器只能打印二维码。如需 CODE128 或 CODE39 条形码,请使用 Chromium。

链接字段

打印本文档所链接文档中的某个值。例如,销售发票链接到客户,因此你无需在发票中添加字段,即可打印客户的税号或地区。

设置 作用
链接 要跟随的链接字段,显示其指向的文档类型,例如客户 (Customer)。
字段 要从链接文档中打印的字段,例如税号。该块的标签会设置为该字段的标签。
标签和显示标签 打印在值旁边的标签。
大小 仅当链接字段为图片时使用。即图片的宽度。

它还具有常见的加粗、字体大小、颜色和对齐设置,以及普通字段没有的一项设置:

设置 作用
为空时打印 即使链接的值为空也打印标签。对于必须始终保留该空间的表单(例如送货单上的“车牌号”),请开启此项。

链接字段只跟随一个链接。打印者必须有权读取链接的文档,否则该值将被省略。

自定义表格

以你自己的布局打印子表的行,而不是使用网格。当普通表格过于笨重时使用它,例如紧凑的付款条款列表,或序列号列表。

设置

设置 作用
来源 要打印的子表,例如付款计划。
标题和显示标题 行上方的可选标题。
列 每一行按这些列打印。每一列都有一个模板。点击添加列以添加一列。

点击列旁边的设置按钮,可设置其宽度(百分比)、对齐和颜色。

编写列模板

模板将你自己的文本与该行的字段混合在一起:

  1. 点击列的模板框。
  2. 输入纯文本,例如 Due on 。
  3. 输入 / 以打开该行字段的列表。继续输入以筛选,然后按回车插入该字段。它会显示为一个小徽章。
  4. 继续输入,并以相同方式添加更多字段。

对于付款计划,像这样的两列:

列 模板
1 Due on due_date
2 payment_amount

每行打印一行:

Due on 09-11-2026                    $ 3,315.00
Due on 09-12-2026                    $ 3,315.00

使用退格键删除光标前的徽章。字段会以格式化形式打印,因此日期、货币和数字看起来与其他地方一致。

当来源表没有行时,不打印任何内容。

间隔

在两个内容之间添加空的垂直空间。

设置 作用
高度 以像素为单位的空间。新建的间隔为 10 像素。

分隔线

在列中绘制一条细灰色线。它没有自己的设置。使用自定义 CSS 来更改它,例如 border-bottom: 2px solid #111827;。

自定义 HTML

打印你自己的 HTML。用于其他块无法完成的事情:混合多个值的句子、签名框、具有特殊格式的条款块。

选择该块并点击编辑 HTML。编辑器打开后,左侧是你的 HTML,右侧是实时预览,使用你为预览选择的文档。

你可以使用 Jinja 来打印值。文档可通过 doc 访问:

<p>
  Thank you, {{ doc.customer_name }}, for your order
  {{ doc.po_no or "" }}.
</p>
<p>Amount due: <b>{{ doc.get_formatted("grand_total") }}</b></p>

子表行以列表形式提供:

<ul>
{% for row in doc.items %}

<li>{{ row.item_name }}: {{ row.get_formatted("amount") }}</li>
{% endfor %}
</ul>

需要了解的事项:

  • 使用 doc.get_formatted("fieldname") 以表单显示值的方式打印值,包括货币符号和日期格式。
  • 可使用对模板安全的 frappe 实用工具,例如 frappe.format_date(doc.posting_date) 和 frappe.db.get_value("Customer", doc.customer, "tax_id")。参见 Jinja API。
  • 为安全起见,保存时会移除脚本、样式、表单、iframe 以及诸如 onclick 的事件处理器。请改为将样式放在该块的自定义 CSS 或页面的自定义 CSS 中。
  • 包含自定义 HTML 块的节始终会打印,即使该块不打印任何内容。

注意:包含自定义 HTML 块的格式无法使用 Typst 渲染器。

Typst

仅当格式的 PDF 渲染器 为 Typst 时才会显示。它取代自定义 HTML,用于打印您自己的 Typst 标记。

在区块的文本框中输入标记,或点击页面上的 编辑 Typst。使用 {{ doc.fieldname }} 获取文档中的值:

#text(weight: "bold", size: 14pt)[Thank you, {{ doc.customer_name }}]

Amount due: *{{ doc.get_formatted("grand_total") }}*

需要了解的事项:

  • 值会针对 Typst 进行转义,因此包含 # 或 * 的客户名称会按原样打印。若要从某个值插入原始 Typst 标记,请写 {{ value | typst_raw }}。
  • 诸如 {% for row in doc.items %} 之类的 Jinja 标签也可以使用。
  • 编辑器页面会为此区块显示一个占位符。点击 显示预览 可在 PDF 中查看结果。
  • 保存时,标记会对照真实文档进行检查。如果存在错误,保存会停止并告知您哪里有问题。
  • 包含 Typst 区块的格式只能使用 Typst 渲染器。若要改回 Chromium,请先移除该区块。

节和分页符

这两个位于“区块”选项卡的末尾:

  • 节 会在所选节下方添加一个新节。请参阅节、列和页面。
  • 分页符 会添加一个分页符。其后的所有内容都会从新页面开始。点击页面上的 移除分页符 可将其删除。

保存区块以供重复使用

只需设置一次区块,即可在其他格式中重复使用:选中它并点击右侧面板顶部的书签按钮,或右键单击它并选择 保存为片段。随后它会出现在 库 选项卡中。请参阅版本、片段和快捷键。

  • 字段
  • 显示或隐藏内容
  • 页面设置和 PDF 渲染器

表格

子表格,比如发票上的明细项或订单上的税费,会以表格形式打印。本页介绍如何选择它们的列、设置样式、将多个值合并到一个单元格中,以及只打印部分行。

适用于 Frappe v16 及更高版本。

添加表格

子表格和其他字段一样位于字段选项卡中,类型为表格。将其拖入某个区域即可。表格通常单独放在一个单列区域中,这样它就能占满页面的整个宽度。

如果你想按自己的方式排列每一行,而不是使用网格布局,请使用自定义表格块。

表格设置

选中表格即可查看其设置。

表格

设置 选项 作用
标题 文本,配合显示标题 表格上方的标题,例如“明细项”。
样式 网格、行、斑马纹、无 网格绘制所有线条。行仅在行之间绘制线条。斑马纹为每隔一行添加底纹。无不绘制任何线条。
表头 带样式、普通、无 带样式为表头行添加背景色。普通将其作为普通文本打印。无隐藏表头行。
单元格内边距 像素 每个单元格内部的空间。
圆角 像素 将表格的角变为圆角。
最小高度 像素 即使行数很少,也保持表格至少有这么高。适用于预印好的信纸。

列

列列表按打印顺序显示各列,顶部显示列数。

  • 添加列:在添加列…中输入内容并选择一个字段。序号会添加行号。
  • 重新排序:通过拖动手柄来拖动某一列。
  • 重命名:点击列名并输入新的标题。
  • 移除:点击旁边的×。

点击列旁边的设置按钮可进行更多操作:

设置 作用
宽度 该列占表格的比例,以百分比表示。留空则平均分配空间。
日期格式 用于日期列。
合并字段 在同一单元格中、主值下方显示更多字段。见下文。
显示列条件 仅当关于文档的条件为真时才打印该列。

如果某一列在每一行中的单元格都为空,该列会被自动省略,其他列会扩展以填补空间。

将字段合并到一个单元格

合并可以让一个单元格承载多个值,例如以粗体显示明细项名称,并在其下方以灰色显示其编码和描述。

  1. 打开该列的设置,例如明细项。
  2. 在合并字段下,点击添加字段…并选择一个字段,例如描述。
  3. 为每个合并字段选择一种样式。该列自身的字段始终以主要样式首先打印。
样式 外观
主要 粗体、深色文本
次要 正常字重、深色文本
代码 小号灰色等宽文本,用于编码和 SKU
弱化 小号灰色文本,用于较长的描述

你添加的第一个字段默认为次要,后续字段默认为弱化。

图像字段(例如明细项图片)则会改为获得一个尺寸设置,这样你就可以在明细项名称旁边打印一个小缩略图。

  1. 将方向设置为垂直以堆叠这些值,或设置为水平以将它们并排放置。

样式

设置 作用
表头 表头行的背景颜色。当表头为带样式时显示。
边框 线条的颜色。
自定义 CSS 你为表格编写的自定义 CSS。

可见性

设置 作用
条件 仅当此条件为真时才打印整个表格。
显示行条件 仅打印满足此条件的行。使用 row. 来引用该行的字段。留空则打印每一行。

显示行条件的一些示例:

row.qty > 0                      # skip zero quantity rows
row.item_group != "Services"     # leave out service items
not row.is_free_item             # hide free items

有关条件如何工作,请参阅显示或隐藏内容。

  • 块:自定义表格
  • 显示或隐藏内容

字段

字段就是文档中的各种值:客户名称、过账日期、总计金额。本页介绍如何把它们放到页面上,以及如何修改每个字段的打印方式。

适用于 Frappe v16 及更高版本。

添加字段

  1. 打开左侧面板中的字段标签页。它会列出文档的所有字段,右侧显示字段类型。
  2. 在搜索字段中输入内容来查找字段。在编辑器任意位置按 / 可快速跳到此输入框。
  3. 将字段拖入某一列,或点击它将其添加到所选字段的下方。如果没有选中任何内容,它会添加到最后一个区块中。

要移动字段,把它拖到其他位置,或选中后按 Alt+↑ 或 Alt+↓。要删除字段,选中后按 Delete。

你可以一次选中多个字段:Shift+点击选中一个范围,Ctrl+点击(Mac 上为 Cmd+点击)逐个添加字段。

字段设置

选中一个字段后,右侧面板会显示它的设置。只有适用于该字段的设置才会出现,所以日期字段有日期格式选项,长文本字段可以跨页拆分。

字段

设置 作用
标签 打印在值旁边的文字。可以在这里修改,而不用改动表单,例如把“客户名称”改成“账单抬头”。
显示标签 关闭后只打印值。
日期格式 用于日期字段。选择一种格式,例如 dd-mm-yyyy 或 d MMM yyyy。每个选项都会用该格式显示今天的日期。系统默认使用系统设置中的格式。
隐藏冒号 仅当页面设置中开启了标签后加冒号时显示。用于单独去掉这个字段的冒号。

样式

设置 作用
加粗 以粗体打印值。
字体大小 该字段文字的大小,单位为像素。留空则使用页面字体大小。
标签和值 标签和值的颜色。保持默认则使用页面颜色。

布局

设置 选项 作用
对齐 左、居中、右 设置字段在其列中的对齐方式。
间距 正常、两端对齐、均匀分布 仅当区块的标签位置为左侧时可用。两端对齐会把值推到右边缘,很适合用于合计。
标签间距 像素 仅当标签位置为左侧时可用。标签和值之间的间距。
跨页拆分 开、关 用于条款和备注等长文本字段。让较长的值延续到下一页,而不是整体跳到下一页。

自定义 CSS

仅作用于该字段的 CSS。它会以内联样式应用到该字段,所以直接写声明,不要写选择器:

border-top: 1px solid #e5e7eb;
padding-top: 6px;

可见性

仅在条件成立时打印该字段。参见“显示或隐藏内容”。

空字段

没有值的字段不会出现在打印结果中,标签和值都不会显示。这样可以让页面保持整洁,例如发票没有采购订单号时。在页面上,空字段会以灰色加短横线显示。

如果你希望即使没有值也打印标签,请使用“关联字段”区块,它有一个为空时打印设置。

提示

  • 要让标签和值显示在同一行,请把区块的标签位置设为左侧,而不是逐个设置字段。
  • 要打印其他文档中的值,例如客户的税号,请使用“关联字段”区块。
  • 要打印固定文字,例如“感谢您的惠顾”,请使用“文本”区块。
  • 表格
  • 区块
  • 显示或隐藏内容

节、栏和页面

每个打印格式都是由从上到下堆叠的各个区块组成的。本页介绍如何添加和排列区块、将区块拆分为多列、为区块添加边框和背景,以及如何使用页眉、页脚和信头。

适用于 Frappe v16 及更高版本。

区块

区块是页面上的一个水平条带。大多数格式都有几个区块:一个用于客户和日期,一个用于物品表格,一个用于合计,等等。

  • 添加区块:打开区块选项卡并点击区块,或者将其拖到您想要的位置。您也可以点击页面上两个区块之间的添加区块。
  • 移动区块:通过拖动手柄来拖动它,或者选中它并按 Alt+↑ 或 Alt+↓。
  • 复制、创建副本或删除:右键点击该区块,或者选中它并按 Ctrl+C、Ctrl+D 或 Delete。

选中一个区块即可在右侧面板中查看其设置。

标签

设置 作用
标题 打印在区块上方的标题,例如”账单地址”。
显示标题 关闭后,标题会保留在编辑器中但不会被打印出来。

当带标题的区块中没有任何字段有值时,该区块不会出现在打印结果中。这样可以避免页面上出现空标题。包含自定义 HTML 区块的区块始终会被打印。

布局

设置 选项 作用
列数 1、2、3、4 将区块拆分为多列。当您减少列数时,被移除列中的字段会移动到最后一列。
标签位置 顶部、左侧 顶部会将每个标签打印在其值上方。左侧会将标签和值打印在同一行,例如 Invoice No ACC-SINV-0001。
间距 像素,默认 20 列与列之间的间距。

样式

设置 作用
背景 整个区块的背景颜色。
圆角 以像素为单位设置圆角。您也可以拖动区块角落的圆形手柄来调整。
内边距 区块内部的空间,包括上、右、下、左,以像素为单位。
外边距 区块外部的空间,以像素为单位。

您也可以拖动选中区块边缘的小手柄来调整其内边距和外边距。

边框

开启字段边框后,区块会以网格框的形式绘制,每个字段一个框。发票顶部的客户和日期区块通常就是这种样式。

设置 选项 作用
字段边框 开、关 在每个字段周围绘制边框。
网格线 全部、行、列 在字段之间绘制哪些线。
单元格内边距 像素,默认 8 每个框内部的空间。
边框颜色 颜色 线条的颜色。

打印

设置 作用
保持在一起 防止区块被拆分到两页。如果当前页面放不下,它会移到下一页。

自定义 CSS 和可见性

  • 自定义 CSS 仅为此区块添加您自己的 CSS,例如 border-left: 3px solid #1f4e79;。
  • 可见性仅在条件为真时打印该区块。请参阅显示或隐藏内容。

列

列是通过区块的列数设置创建的。将字段和区块拖入某一列。在列内,项目从上到下打印。

若要使某一列比其他列更宽,请在页面上拖动它们之间的分隔线。

分页符

要开始新的一页,请打开区块选项卡,并在应结束当前页的区块下方添加一个分页符。页面上会显示为”分页符”,并带有一个移除按钮。它之后的所有内容都会打印在新的一页上。

注意:分页符由 Chromium 渲染器支持。如果您使用 Typst,请检查 PDF 预览。

第一个区块上方是页眉,最后一个区块下方是页脚。它们包含:

  • 信头(如果格式中有的话);
  • 您拖入其中的任何字段,例如页面顶部的发票编号。

当打印设置中的重复页眉和页脚开启时,页眉和页脚会打印在每一页上。关闭时,页眉只在顶部打印一次,页脚只在末尾打印一次。

页眉和页脚只有布局设置:列、标签面和间距。它们无法被删除。

信头

信头是页面顶部你公司的横幅。在页面设置中的文档 > 信头下选择它,或者留空以不打印信头。关于如何创建信头,请参阅信头。

在页面上点击信头,即可直接在编辑器中修改它:

  • 基于:图片或HTML。
  • 对于图片:对齐、大小,以及一个上传新图片的按钮。
  • 对于 HTML:编辑 HTML会打开一个带实时预览的编辑器。

注意:信头的更改会立即保存,并应用于所有使用该信头的打印格式,而不仅仅是这一个。

  • 字段
  • 区块
  • 页面设置和 PDF 渲染器

打印格式编辑器

打印格式编辑器用于设计文档打印出来的样子。你可以把字段拖到页面上,按区块和列进行排列,并立即用真实文档的值查看效果。不需要 HTML 或代码,但需要时也可以自己添加。

适用于 Frappe v16 及更高版本。

开始之前

你需要:

  • 创建打印格式的权限。系统管理员默认拥有该权限。
  • 至少一份你要设计的目标类型的已保存文档,这样编辑器才能显示真实的值。

创建打印格式

  1. 打开 打印格式 列表,点击 添加打印格式。
  2. 将 打印格式用于 设置为 DocType,然后选择 DocType,例如销售发票。
  3. 输入 名称,例如“客户发票”。
  4. 将 起始方式 保留为默认值,即可视化编辑器。
  5. 点击 创建。编辑器随即打开。

然后编辑器会询问你想如何开始:

  • 从默认开始 会用文档中所有可打印字段填满页面,顺序与表单一致。删除不需要的内容即可。这是最快的开始方式。
  • 从空白开始 会给你一个空白页面,由你自己搭建。

你也可以从打印页面开始。打开一份文档,按 Ctrl+P,打开 ⋯ 菜单,在选中标准格式时点击 自定义。

快速了解

区域 作用
左侧面板 四个标签页。字段 列出文档的每个字段。图层 以树形结构显示页面。区块 包含非字段内容,如文本、图片和条形码。库 保存你已保存的片段。
页面 打印稿本身。点击任意内容即可选中。拖动即可移动。
右侧面板 你所选中内容的设置。未选中任何内容时,显示页面设置。
预览文档 页面上方的框。在这里选择一份文档,页面就会显示它的真实值。
工具栏 版本历史、显示预览、打印设置、编辑打印格式(打开该格式的表单)和 保存并应用。

打印格式是如何构成的

打印格式是由 区块 从上到下堆叠而成的。每个区块有一到四 列,每列包含 字段 和 区块。区块的上方和下方分别是 页眉 和 页脚。只有在打印设置中开启 重复页眉和页脚 时,它们才会在每一页重复。关闭时,页眉只在顶部打印一次,页脚只在末尾打印一次。

Header          letter head and header fields
Section         1 to 4 columns
  Column        fields and blocks, top to bottom
Section
  ...
Footer          footer fields and letter head footer

下面的页面会逐一说明各部分:

  • 区块、列和页面:区块、列、边框、页眉、页脚、信头和分页符。
  • 字段:添加字段并更改每个字段的打印方式。
  • 表格:子表格,如发票明细、它们的列、样式和行筛选器。
  • 区块:文本、图片、条形码、二维码、链接值、自定义表格、自定义 HTML 和 Typst。
  • 显示或隐藏内容:区块、字段、表格行和列的显示条件。
  • 页面设置和 PDF 渲染器:字体、颜色、边距、页码、Chromium 和 Typst。
  • 版本、片段和快捷键。

保存你的工作

编辑器会保留你的格式的两个副本:

  • 草稿 是你编辑时看到的内容。它会随着你的操作自动保存,工具栏会先显示 正在保存…,然后显示 草稿。此时打印效果还没有任何变化。
  • 已发布 版本才是实际打印的内容。点击 保存并应用,或按 Ctrl+S,即可发布草稿。

如果你在未应用更改的情况下离开编辑器,它会先询问。你的草稿会被保留,所以你可以稍后再回来继续。

用真实数据预览

在页面上方的框中选择一份文档。每个字段都会显示该文档的值,任何不会为它打印的内容都会以虚线边框置灰显示。将鼠标悬停在置灰的区块上即可查看原因:它被自身条件隐藏了,或者它在这份文档中没有值。

点击工具栏中的 显示预览,即可查看与打印完全一致的 PDF。

只有在打印设置中开启 允许打印草稿 或 允许打印已取消 时,才能预览草稿和已取消的文档。

使用该格式

  • 在打印页面上,在 打印格式 框中选择它。
  • 要将其设为其文档类型的默认格式,请在打印页面上选中它,然后选择 ⋯ > 设为默认格式。

故障排除

问题 检查什么
打印时我的更改没有显示 点击保存并应用。草稿不会被打印。
某个字段没有打印出来 它的值为空,或者它的条件为假。在预览中悬停在它上面即可查看是哪种情况。
某个部分从新的一页开始 它上方有一个分页符,或者保持在一起已开启,而该部分无法容纳在当前页面上。
无法选择Typst(快速) 悬停在PDF 渲染器旁边的信息图标上。它会列出 Typst 无法渲染的内容,例如自定义 HTML 块。请参阅页面设置和 PDF 渲染器。
PDF 中缺少信头页脚 在打印设置中开启重复页眉和页脚。
  • 打印文档
  • 信头
  • HTML 打印格式,用于通过 HTML 和 Jinja 进行完全控制

打印文档

打印页面会实时预览文档打印出来的效果。在这里,你可以打印文档、下载 PDF、通过邮件发送,以及更改格式、信头、样式和页面设置。

适用于 Frappe v16 及更高版本。

打开打印页面

  • 在文档中:点击工具栏上的打印机图标,或按 Ctrl+P(Mac 上为 Cmd+P)。
  • 在列表中:选中多个文档,然后点击 操作 > 打印,即可一次打印多个。

工具栏

按钮 功能说明
打印 打开浏览器打印对话框。如果已设置网络打印机,则直接将任务发送到该打印机。
PDF 将文档下载为 PDF 文件
邮件 打开邮件对话框,并附上 PDF 附件,使用你选择的格式、信头、样式和页面设置
‹ 和 › 按列表视图的顺序切换到上一个或下一个文档
表单图标 返回文档
⋯ 全页、刷新、设为默认格式、打印设置、自定义,以及启用后的打印机设置

键盘快捷键

按键 操作
Ctrl+P 打印
Ctrl+Shift+P 下载 PDF
Ctrl+Shift+E 邮件
Shift+R 刷新预览

在 Mac 上,请使用 Cmd 代替 Ctrl。

侧边栏

格式

选项 功能说明
打印格式 要打印的布局。留空则使用文档类型的默认格式,即标准格式。
语言 以此语言打印标签和值。默认依次取文档的语言、格式的默认语言,最后是你自己的语言。
信头 每页打印的页眉和页脚。留空则不使用信头。

样式

仅在选中标准格式时显示。

  • 样式卡片:选择标准格式的外观。参见打印样式。
  • 字体:整个文档使用的字体。默认则保留格式自带的字体。
  • 省墨模式:打印时不使用颜色或填充区域,以节省打印成本。

页面

对在编辑器中创建的格式以及标准格式显示。

选项 功能说明
纸张大小 A4、A5、A3、Letter、Legal 或 Tabloid。默认则使用打印设置中的大小。
方向 纵向或横向
边距(毫米) 上、右、下、左边距。留空则保留格式自带的边距。

这些选择仅对本次打印生效,不会保存到格式中。

文档选项

某些文档类型会在侧边栏底部添加自己的选项。例如,销售发票有紧凑项目打印。

预览

预览底部的栏会显示:

  • 第 1 页,共 2 页,并带有箭头可在页面间跳转。页数根据纸张高度和分页符计算,因此当某些部分保持在一起时,PDF 可能会相差一页。
  • − 和 + 用于缩放,适应则让页面适应窗口大小。

自定义格式

打开 ⋯ > 自定义:

  • 在编辑器中创建的格式会在打印格式编辑器中打开。
  • 你自己的 HTML 格式会打开其表单。
  • 应用自带的标准 HTML 格式会先被复制一份,这样你的修改在更新后仍能保留。
  • 对于标准格式,会弹出新建自定义打印格式对话框,要求输入名称。点击开始,新格式会基于标准格式在编辑器中打开。

故障排除

问题 需要检查的内容
“不允许打印草稿文档” 在打印设置中开启允许打印草稿
“不允许打印已取消的文档” 在打印设置中开启允许打印已取消文档
页脚缺失 在打印设置中开启重复页眉和页脚。关闭时侧边栏会给出提示。
样式选项缺失 它们仅对标准格式显示。在编辑器中创建的格式有自己的设计。
下载 PDF 时弹出窗口被阻止 在浏览器中允许你的站点弹出窗口
  • 打印格式编辑器
  • 打印样式
  • 原始打印和网络打印

打印

本页介绍的是 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>