制作 PDF 单证模板
BringCRM 安装时会预置报价单、形式发票(PI)、装箱单等 PDF 模板。您可在 管理 → PDF模板 中修改版式,或新建模板,并在正文中使用 占位符 引用单据字段——包括 自定义字段 添加的内容。
版本说明
PDF 打印为免费版与专业版均可用。在报价单、销售单、出运单等详情页点击 打印 PDF 即可使用。
参考 Espo 官方说明(英文):Printing to PDF
预装模板
| 模板名称 | 适用实体 | 用途 |
|---|---|---|
| Quote Template | 报价单(CQuote) | 英文报价书 |
| PI Template | 销售订单(CSalesOrder) | 形式发票 Proforma Invoice |
| Packing List | 出运单(CShippingOrder) | 装箱单 |
管理 PDF 模板
- 管理 → PDF模板
- 点击模板名称进入编辑,或 创建 PDF模板
- 主要配置项:
| 字段 | 说明 |
|---|---|
| 名称 | 模板显示名 |
| 实体类型 | 报价单 / 销售订单 / 出运单等 |
| 状态 | 启用 / 停用 |
| 正文 | HTML + 占位符(核心) |
| 页眉 / 页脚 | 可选;支持 {pageNumber} 页码 |
| 纸张 | A4、方向、页边距 |
| 字体 | 中文建议含 stsongstdlight 的样式 |
- 保存后,对应实体详情页 打印 PDF 下拉中会出现该模板
占位符语法(Handlebars)
单条记录字段
报价单号:{{name}}
报价日期:{{quoteDate}}
总金额:{{totalPriceCurrency}} {{totalPrice}}
条款:{{{terms}}}
| 写法 | 含义 |
|---|---|
{{字段名}} |
输出字段值(HTML 转义) |
{{{字段名}}} |
输出 HTML/富文本(如条款、描述) |
{{account.name}} |
关联客户的字段 |
{{account.contactName}} |
客户主联系人 |
{{salesOrder.name}} |
出运单关联的销售单号 |
产品明细循环
明细数据来自 productsData。模板中需用 HTML 注释包裹循环标记(Espo 约定):
<tbody>
<!-- {{#each productsData}} -->
<tr>
<td>{{name}}</td>
<td>{{quantity}}</td>
<td>{{unitPrice}}</td>
<td>{{totalPrice}}</td>
</tr>
<!-- {{/each}} -->
</tbody>
出运单装箱明细常用占位符:{{sortOrder}}、{{cartonCount}}、{{totalNetWeight}}、{{totalGrossWeight}}、{{totalVolume}},表头合计:{{totalCartonCount}} 等。
特殊变量
| 占位符 | 说明 |
|---|---|
{{today}} |
打印当天日期 |
{{now}} |
当前日期时间 |
自定义字段示例
若您在报价单添加了字段 customerPoNo(客户 PO 号):
<strong>Customer PO:</strong> {{customerPoNo}}
保存报价单并录入该字段后,打印 PDF 即会自动填入。
完整工作流:自定义字段 → PDF
- 增加字段 — 如销售单增加
contractNo - 修改布局 — 把
contractNo放到编辑/详情页 - 编辑 PI Template 正文,加入
{{contractNo}} - 业务员保存销售单 → 详情 → 打印 PDF → 选择 PI Template
业务端:打印 PDF
- 打开报价单 / 销售单 / 出运单 详情页
- 点击工具栏 打印 PDF
- 选择模板(若仅一个启用模板则直接生成)
- 浏览器下载或预览 PDF
中文显示
预装模板样式中含 [lang="zh-CN"] 字体规则。产品名等中文内容建议用 <span lang="zh-CN">{{name}}</span> 包裹。
新建采购单 PDF 模板(示例)
- 管理 → PDF模板 → 创建
- 实体类型选 采购订单(CPurchaseOrder)
- 正文参考 Quote Template,字段改为
purchaseDate、supplier.name、productsData循环等 - 状态设为 启用
- 采购单详情即可 打印 PDF
常见问题
Q:占位符原样输出、没有数据?
- 检查字段名是否与实体管理器中的 Name 一致(区分大小写)
- 确认记录已保存且该字段有值
- 关联字段用
关联名.字段名,如account.name
Q:明细只出一行或不出?
- 检查
<!-- {{#each productsData}} -->与<!-- {{/each}} -->是否成对、位于<tr>外侧
Q:Excel 和 PDF 占位符一样吗?
- 单字段语法类似;Excel 明细展开规则见 其它 Excel 模板