Skip to content

打印专题:「基础word模版」

通过创建word模版,可以实现对表单内容的自定义打印

本节介绍基础word模版的用法

本章app下载

1.导入打印模板及使用


1.1word创建

  1. 创建一个word文档,用作打印模板

  2. 创建表单用于显示主表信息

  1. 在"布局"中可以调整纸张方向,页边距等参数

1.2导入打印模版

  1. 编辑表单->表单设置->新增模板

  2. 选择模板类型为Word打印

  3. 设置模板的名称便于后续调用

  4. 上传创建的word模板保存即可


1.3生成打印文件

  1. 选择要打印的表单数据

  2. 单击右上角的打印图标

  3. 选择刚刚创建的打印模板即可生成预览打印文件

2.word模板基础语法

在word文档中,通过使用特定的符号来将表单字段导入到word中


2.1导入基础字段

下载本节word模板

固定结构:<<R["控件名"]>>

结构说明:

  • <<>>:固定标记符号,符号内的内容将被替换
  • R:表示包含表单记录的所有内容
  • 控件名:可以是文本控件,数值控件,单选控件等,必须""包含

在执行打印操作后,word中<<R["控件名"]>>的内容将被替换为对应控件的值

例如:

订单编号: <<R["订单编号"]>>会被替换为订单编号: DB-000189;

商品总数量: <<R["商品总数量"]>>会被替换为 商品总数量: 180;

效果图:

注意事项:

<>,"",[]等符号均为英文符号!

自定义逻辑

<<>>区域内支持js脚本

例如你可以将"消费金额"保留两位小数显示:

<<R["消费金额"].toFixed(2)>>

这里的R["消费金额"]在js中仍为数值类型;选择其他控件,则为其对应类型


2.2导入特殊字段

基础语法与前面相同,但提供一些格式化数据的参数

1.添加日期

格式:

添加日期字段时,默认使用时间戳格式,要转换为可读的日期使用以下语法:

<<toDate(R["日期控件名"], 日期格式)>>

示例: 添加"成交日期"到word:

<<toDate(R["成交日期"], "yyyy年MM月dd日")>>

说明:

  • 日期格式:yyyy-MM-dd hh:mm:ss;例如,当表示年月日时可以使用:yyyy年MM月dd日(或yyyy-MM-dd)

    相当于用yyyy替代年,MM替代月......(注意'月'和'分'的m,一个大写一个小写)

  • ["日期控件名"]为Number类型字段值(时间戳毫秒格式)

  • toDate为日期转换方法,可以将时间戳转为指定格式的日期

自定义逻辑:

使用js脚本你可以计算成交日期距离今天有多少天:

<<(Date.now() - R["成交日期"]) / 24 / 3600000>>

2.添加时刻

格式:

<<toTime(R["时刻控件名"], 时刻格式)>>

示例: 添加"成交时刻"到word:

<<toTime(R["成交时刻"], "hh时mm分")>>

说明:

  • ["时刻控件名"]为Number类型字段值(零点到指定时刻的毫秒数)
  • toTime为时刻转换方法

3.添加图片

格式:

<<IMAGE toImage(R["图片控件名"], {width, height, index, caption, isOriginal})>>

示例: 添加"成交截图"到word:

<<IMAGE toImage(R["成交截图"], {width: 1, height: 1, index: 1, caption: R["客户名"]})>>

说明:

添加图片字段到Word模板中

  • <<IMAGE >>: 固定标记符号,标记符号内的内容将被替换为图片
  • toImage: 为图片转换方法,接收两个参数,参数1:图片数据;参数2:转换参数
  • width: 图片宽度[必填](采用word计量单位:cm)
  • height: 图片高度[必填](采用word计量单位:cm)
  • index: 需要打印第几张图片[选填](例如:打印第一张图片时,传递1)
  • caption: 图片下方的描述文字[选填]
  • isOriginal: 是否打印原图[选填](true:原图;false:缩略图)
  • ["图片控件名"] :为表单图片字段,结构为:[{compressedPic:String, originalPic:String}]

4.添加附件:

格式:

<<IMAGE toFile(R["附件控件名"], {width, height, index, caption})>>

示例: 添加"成交合同"到word:

<<IMAGE toFile(R["成交合同"], {width: 1, height: 1, index: 1, caption: R["合同编号"]})>>

说明:

添加附件字段到Word模板中时并将附件转换为下载二维码:

  • <<Image>>:固定标记符号,标记符号内的内容将被替换为图片
  • toFile:为下载链接转换为二维码方法,接收两个参数,参数1:附件数据;参数2:转换参数
  • width:二维码宽度[必填](采用word计量单位:cm)
  • height:二维码高度[必填](采用word计量单位:cm)
  • index:需要打印第几个附件[选填](例如:打印第一个合同时,传递1)
  • caption:二维码下方的描述文字[选填]
  • ["附件控件名"]: 为表单附件字段,为String[]类型字段值(下载链接数组)

5.添加富文本

格式:

<<toText(R["日期控件名"])>>

示例 :添加“详细说明”到word:

<<R["详细说明"]>>

说明:

  • toText:为文本转换方法,将富文本转换为普通文本
  • ["富文本控件名"]:为String类型字段值

6.添加手写签名

格式:

<<IMAGE toSign(R["签名控件名"], {width, height, caption})>>

示例: 添加"确认签名"到word:

<<IMAGE toSign(R["确认签名"], {width: 1, height: 1, caption: R["客户姓名"]})>>

说明:

  • <<IMAGE >>:固定标记符号,标记符号内的内容将被替换为图片
  • toSign:签名转换方法,接收两个参数,参数1:签名数据;参数2:转换参数
  • width:签名宽度[必填](采用word计量单位:cm)
  • height:签名高度[必填](采用word计量单位:cm)
  • caption:签名下方的描述文字[选填]
  • ["签名控件名"]: 为表单签名字段,为String类型字段值(签名链接)

7.添加二维码

格式:

<<IMAGE toQR(R["文本控件名"], {width, height, caption})>>

示例:

<<IMAGE toQR(R["支付订单号"], {width: 1, height: 1, caption: R["付款日期"]})>>

说明:

添加二维码到Word模板中,将文本转换为二维码

  • <<IMAGE >>:固定标记符号,标记符号内的内容将被替换为图片

  • toQR:为二维码转换方法,接收两个参数(参数1:文本内容;参数2:转换参数)

  • width:图片宽度[必填](采用word计量单位:cm)

  • height:图片高度[必填](采用word计量单位:cm)

  • caption:图片下方的描述文字[选填]

  • ["文本控件名"]:, 为String类型字段值

使用js脚本,可以支持访问链接[注意:打印模版需要启用相关配置] 添加外部访问链接:<<IMAGE toQR(R["EXTERNAL_LINK"], {width, height, caption})>> 添加内部访问链接:<<IMAGE toQR(R["INTERNAL_LINK"], {width, height, caption})>>

8.添加条形码

格式:

<<IMAGE toBAR(R["文本控件名"], {width, height, color, isShowText, fontSize, margin})>>

示例:添加"支付订单号"对应的条形码到word:

<<IMAGE toBAR(R["支付订单号"], {width: 10, height: 2, isShowText: true})>>

说明:

将文本转换为条形码

  • <<IMAGE >>:固定标记符号,标记符号内的内容将被替换为图片

  • toBAR:为条形码转换方法,接收两个参数(参数1:文本内容;参数2:转换参数)

  • width:图片宽度[必填](采用word计量单位:cm)

  • height:图片高度[必填](采用word计量单位:cm)

  • color:条形码颜色[选填](默认为:黑色(”#000000”),采用16进制颜色)

  • isShowText:是否显示文本[选填](默认为:true(显示),采用布尔值:true/false)

  • fontSize:字体大小[选填](默认为:20,单位为:像素)

  • margin:条形码外边距[选填](默认为:10,单位为:像素)

  • ["文本控件名"], 为String类型字段值

9.添加地区

格式:

<<R["地区控件名"]>>

示例: 添加"收货地址"到word:

<<R["收货地址"]>>

说明:

["地区控件名"]为String[]类型字段值(地区名倒序数组)

可以将"收货地址"使用"/"拼接后正序显示:

<<R["收货地址"].reverse().join("/")>>

3.插入子表

下载本节word模板


3.1表格的插入方法

掌握word中表格的绘制方法,便于后续对复杂子表打印的自定义

在"插入"选项中点击表格,可以看到有多种插入表格的方式

  1. 鼠标在网格上移动,能够预览创建的对应行列数的表格,单击生成表格

  2. "插入表格"可以直接指定表格的行列数,和间距等属性,适合大表格

  3. 选择"绘制表格"使用鼠标拖拽自定义表格

  4. 也可导入Excel表格或者使用"快速表格"中的已有模板

插入表格后可以根据需要对表格进行调整

  1. 鼠标右键要调整的区域选择表格属性即可调整该格的参数

  2. 同样的方式调整行列间距,也可以直接使用鼠标拖动

  3. 也可以选择手动绘制表格,进行调整

3.2导入子表数据


在word中创建好表格后,要添加子表到word模板中,需要对子表进行循环

方法格式:

表头1表头2表头3
<<FOR r IN R["子表控件名"]>>
<<$idx>><<$r["记录字段名1"]>><<$r["记录字段名2"]>>
<<END-FOR r>>

例如:

序号客户名跟进时间跟进记录
<<FOR r IN R["跟进记录"]>>
<<$idx+1>><<$r["姓名"]>><<toDate($r["跟进时间"],"yyyy年-MM月-dd日")>><<$r["跟进记录"]>>
<<END-FOR r>>

方法说明:

<<toDate(R["死亡时间"], "yyyy-MM-dd")>>

  • <<FOR r IN R["子表控件名"]>>:,表示对子表进行循环,循环记录名为r(可以重命名)

  • <<$r["记录字段名1"]>>:表示从循环记录上获取指定字段的值(结构与基础字段一致)

  • <<$idx>>:表示获取每次循环的下标(从0开始,如果希望从1开始则设置为:<<$idx + 1>>)

  • <<END-FOR r>>:表示结束循环

提示

命令会遍历子表中的所有记录,每条记录会暂存在r中,可以使用<<$r["控件名"]>>来访问子表的对应字段

一条子表记录处理完后会自动在下方新增行显示下一条子表记录

要导入子表必须在word中插入表格

<<>>内同样支持js

例如可以只对姓赵的客户的"跟进记录"进行循环:

<<FOR r IN R["跟进记录"].filter(item => item["客户名"] === "赵")>>

简单来说,子表中模版的用法与主表大致相同,只是将R[]替换成$r表示填充子表字段

3.3简单示例

生成子表字段

打印效果如下: