模板打印 - 高级功能

高级功能

分页

1. 页码更新

语法

在 Office 软件中插入即可。

示例

在 Microsoft Word 中:

  • 使用 “插入 → 页码” 功能
    在 LibreOffice 中:
  • 使用 “插入 → 字段 → 页码” 功能
结果

生成的报告中,各页页码会自动更新。

2. 目录生成

语法

在 Office 软件中插入即可。

示例

在 Microsoft Word 中:

  • 使用 “插入 → 索引和目录 → 目录” 功能
    在 LibreOffice 中:
  • 使用 “插入 → 目录和索引 → 目录、索引或参考书目” 功能
结果

生成的报告目录会根据文档内容自动更新。

3. 表头重复

语法

在 Office 软件中插入即可。

示例

在 Microsoft Word 中:

  • 右键点击表头 → 表格属性 → 勾选“在每页顶部重复作为标题行”
    在 LibreOffice 中:
  • 右键点击表头 → 表格属性 → 文本流选项卡 → 勾选“重复标题”
结果

当表格跨页时,表头自动在每页顶部重复显示。

国际化(i18n)

1. 静态文本翻译

语法

使用 {t(文本)} 标签对静态文本进行国际化:

{t(meeting)}
示例

模板中:

{t(meeting)} {t(apples)}

JSON 数据或外部本地化字典(例如针对 "fr-fr")中提供对应翻译,如 "meeting" → "rendez-vous"、"apples" → "Pommes"。

结果

生成报告时,文本将根据目标语言替换为相应翻译。

2. 动态文本翻译

语法

对于数据内容可使用 :t 格式器,例如:

{d.id:ifEQ(2):show({t(monday)}):elseShow({t(tuesday)})}
示例

模板中:

{d.id:ifEQ(2):show({t(monday)}):elseShow({t(tuesday)})}

JSON 数据和本地化字典中提供相应翻译。

结果

根据条件判断,输出 “lundi” 或 “mardi”(以目标语言为例)。

键值映射

1. 枚举转换(:convEnum)

语法
{数据:convEnum(枚举名称)}

例如:

0:convEnum('ORDER_STATUS')
示例

API options 示例中传入:

{
  "enum": {
    "ORDER_STATUS": ["pending", "sent", "delivered"]
  }
}

模板中:

0:convEnum('ORDER_STATUS')
结果

输出 “pending”;若索引超出枚举范围,则输出原始值。

动态图片

Info

目前支持 XLSX, DOCX 类型的文件 ::: 你可以在文档模板中插入“动态图片”,也就是说,模板中的占位图会在渲染时根据数据自动替换为真实图片。这个过程非常简单,只需要:

  1. 插入一张临时图片作为占位符

  2. 编辑该图片的“替代文字”来设置字段标签

  3. 渲染文档,系统自动将其替换为实际图片

下面我们通过具体例子分别讲解 DOCX 和 XLSX 的操作方法。

在 DOCX 文件中插入动态图片

单张图片替换
  1. 打开你的 DOCX 模板,插入一张临时图片(可以是任意一张占位图片,比如纯蓝色图片

:::info 图片格式说明

  • 目前占位符图片仅支持 PNG 类型的图片,推荐使用我们提供的示例图片纯蓝色图片
  • 目标渲染图片仅支持 PNG, JPG, JPEG 的图片,其他类型图片可能会渲染失败。

图片尺寸说明

无论是 DOCX 还是 XLSX,最终渲染时的图片大小,将会沿用模板中临时图片的尺寸。也就是说,实际替换进去的图片会自动缩放为和您插入的占位图一致的大小。如果您希望渲染后的图片大小为 150×150,请在模板中使用一张临时图片并调整为该尺寸。

  1. 右键点击这张图片,编辑其 “替代文字(Alt Text)”,填入你希望插入的图片字段标签,例如 {d.imageUrl}

20250414211130-2025-04-14-21-11-31

  1. 使用如下示例数据进行渲染:
{
  "name": "Apple",
  "imageUrl": "https://images.pexels.com/photos/206959/pexels-photo-206959.jpeg",
}
  1. 渲染后的结果,临时图片会被替换为实际图片:

20250414203444-2025-04-14-20-34-46

多张图片循环替换

如果你想在模板中插入一组图片,例如商品列表,也可以通过循环方式实现,具体步骤如下:

  1. 假设你的数据如下:
{
  "products": [
    {
      "name": "Apple",
      "imageUrl": "https://images.pexels.com/photos/206959/pexels-photo-206959.jpeg",
    },
    {
      "name": "Banana",
      "imageUrl": "https://images.pexels.com/photos/61127/pexels-photo-61127.jpeg",
    },
  ]
}
  1. 在 DOCX 模板中设置循环区域,并在每个循环项中插入临时图片,替代文字设置为 {d.products[i].imageUrl},如下所示:

20250414205418-2025-04-14-20-54-19

  1. 渲染后,所有临时图片都会被各自的数据图片替换:

20250414205503-2025-04-14-20-55-05

在 XLSX 文件中插入动态图片

在 Excel 模板(XLSX)中操作方式基本一致,只是注意以下几点:

  1. 插入图片后,请确保选中的是“单元格内的图片”,而不是图片悬浮在单元格上方。

20250414211643-2025-04-14-21-16-45

  1. 选中单元格后点击查看“替代文字”来填入字段标签,比如 {d.imageUrl}

条码

Info

目前支持 XLSX, DOCX 类型的文件

生成条码(如二维码)

条形码的生成方式与动态图片相同,只需三步:

  1. 在模板中插入一张临时图片,用于标记条码的位置

  2. 编辑图片的“替代文字”,写入条码格式字段标签,例如 {d.code:barcode(qrcode)},其中 qrcode 是条码的类型(详见下方支持列表)

20250414214626-2025-04-14-21-46-28

  1. 渲染后,该占位图将被自动替换为对应的条码图像:

20250414214925-2025-04-14-21-49-26

支持的条码类型

条码名称类型
二维码qrcode