跳转至

制作 PDF 单证模板

BringCRM 安装时会预置报价单、形式发票(PI)、装箱单等 PDF 模板。您可在 管理 → PDF模板 中修改版式,或新建模板,并在正文中使用 占位符 引用单据字段——包括 自定义字段 添加的内容。

版本说明

PDF 打印为免费版与专业版均可用。在报价单、销售单、出运单等详情页点击 打印 PDF 即可使用。

参考 Espo 官方说明(英文):Printing to PDF

预装模板

模板名称 适用实体 用途
Quote Template 报价单(CQuote) 英文报价书
PI Template 销售订单(CSalesOrder) 形式发票 Proforma Invoice
Packing List 出运单(CShippingOrder) 装箱单

管理 PDF 模板

  1. 管理 → PDF模板
  2. 点击模板名称进入编辑,或 创建 PDF模板
  3. 主要配置项:
字段 说明
名称 模板显示名
实体类型 报价单 / 销售订单 / 出运单等
状态 启用 / 停用
正文 HTML + 占位符(核心)
页眉 / 页脚 可选;支持 {pageNumber} 页码
纸张 A4、方向、页边距
字体 中文建议含 stsongstdlight 的样式
  1. 保存后,对应实体详情页 打印 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

  1. 增加字段 — 如销售单增加 contractNo
  2. 修改布局 — 把 contractNo 放到编辑/详情页
  3. 编辑 PI Template 正文,加入 {{contractNo}}
  4. 业务员保存销售单 → 详情 → 打印 PDF → 选择 PI Template

业务端:打印 PDF

  1. 打开报价单 / 销售单 / 出运单 详情页
  2. 点击工具栏 打印 PDF
  3. 选择模板(若仅一个启用模板则直接生成)
  4. 浏览器下载或预览 PDF

中文显示

预装模板样式中含 [lang="zh-CN"] 字体规则。产品名等中文内容建议用 <span lang="zh-CN">{{name}}</span> 包裹。

新建采购单 PDF 模板(示例)

  1. 管理 → PDF模板 → 创建
  2. 实体类型选 采购订单(CPurchaseOrder)
  3. 正文参考 Quote Template,字段改为 purchaseDatesupplier.nameproductsData 循环等
  4. 状态设为 启用
  5. 采购单详情即可 打印 PDF

常见问题

Q:占位符原样输出、没有数据?

  • 检查字段名是否与实体管理器中的 Name 一致(区分大小写)
  • 确认记录已保存且该字段有值
  • 关联字段用 关联名.字段名,如 account.name

Q:明细只出一行或不出?

  • 检查 <!-- {{#each productsData}} --><!-- {{/each}} --> 是否成对、位于 <tr> 外侧

Q:Excel 和 PDF 占位符一样吗?

相关文档


← 返回 BringCRM 产品概览