Word/Excel打印模板中选项、图片和关联记录设计细则
在如何制作Word/Excel打印模板中,我们学会一般的打印方法,本文再进一步介绍打印时的解析规则细节。
1、单选、多选字段打印未选中选项
平铺类型的单选和多选字段如需打印未选中的选项,可在字段代码的内结尾处填写“_Alloptions”,例如:#{单选_Alloptions}。默认是横向平铺打印,如果需要竖向打印,结尾处继续添加[V]标记,如#{单选_Alloptions[V]}
例如一个保密级别字段,有秘密、机密、绝密三个选项,记录中选择了“ 机密”,打印时如果需要打印另外两个选项,则字段代码为#{保密级别_Alloptions}, 如果还需要竖向平铺打印,字段代码为#{保密级别_Alloptions[V]}

2、图片的打印规则
2.1图片的宽度和高度设置
本记录中的图片支持打印,图片支持设定宽度和高度。如下图中的附件字段代码 #{附件$[90*auto]$}
中,[90auto]表示的是[宽度高度]。

图片的尺寸有4种配置方式:
-
宽度固定、高度自适应 :
#{附件$[90*auto]$}表示图片的宽度固定90,高度自适应。90是默认数字,可以自定义。
-
宽度自适应、高度固定 :
#{附件$[auto*80]$}表示图片的宽度自适应,高度固定80,数字可以自定义。
-
宽度固定、高度固定 :
#{附件$[70*90]$}表示图片的宽度固定为70,高度固定为90, 数字可以自定义。
-
固定范围内宽和高自适应 :
#{附件$[45*90_auto]$}表示图片在45*90的范围内宽高自适应显示,数字可以自定义。
高度和宽度不支持完全自适应,例如不支持这样的设置
#{附件$[auto*auto]$}。
2.2图片的质量设置
为了满足不同场景对图片清晰度的要求,模板中的图片支持解析为低、中、高三种图片质量。
-
低(L)——对应图片分辨率75,按照X3的倍数取图片的宽和高;生成速度快,用于一般打印。
-
中(M)——对应图片分辨率150,按照X6的倍数取图片的宽和高;生成速度适中,打印较清晰。
-
高(H)——对应图片分辨率300,按照X12的倍数取图片的宽和高;生成速度慢,用于高质量彩色打印。
字段代码示例:
#{附件$[auto*90_M]$}、#{附件$[auto*90_H]$}、#{附件$[45*90_auto_H]$}
-
1、不添加图片质量标签,表示默认按照低质量的方式解析图片
-
2、为了保证解析的图片不会比原图大,故需要将转换后的图片尺寸与原图做对比,若转换后的图片比原图大,则返回原图
2.3打印图片名称
附件字段的默认代码中不包含文件名,需要同时打印名称时 可拼接_name。支持仅打印图片名称或同时打印图片和名称。
-
同时打印图片缩略图和文件名
示例代码:
#{附件字段代码$[90*auto_L]$_name} -
只获取文件名
示例代码:
#{附件字段代码_name}
示例和效果:

-
Excel模版不支持图片与文件名同时显示
-
文档类型仅支持打印文件名称,不支持打印内容
3、字段的二维码条形码打印
可通过代码获取任意字段的二维码或条形码,字段代码如下:
-
二维码:
#{[qrcode]字段名$[20*20]$} -
条形码:
#{[barcode]字段名$[40*10]$}
代码中,字段名可以使用字段ID,图片大小的数字可以调整,其他内容和符号不能更改。
二维码编码方式:QR-code,最大包含150个字(支持汉字);条形码编码方式:code128,最大包含30个字符(仅支持数字、字母、符号)。
代码示例和效果:

几个系统字段的字段ID
- 公开分享链接: sharelink
- 内部访问链接:privatelink
- 记录ID:recordid
4、子表和关联表(多条)的几种打印方式
方式1、显示方式为列表时
明细表中的序号
如果打印关联表/子表时需要显示行序号,可以使用序号的专有代码sequencenumber。
其格式为:#{明细字段名称.sequencenumber}或#{明细字段代码.sequencenumber}
模板设计示范:

打印效果:

合并相同单元格
当同列的上下单元格内容相同时,可以合并单元格。
合并上下单元格的字段代码写法:
#{子表名.字段名[M]}
只需在原字段代码的字段名和大括号之间写个[M]即可。
如下图:

效果:

以下情况不会合并单元格
单价列设置了可合并,上下单元格都是2000,并没有全部合并。这是因为前一列(SKU)也是设置了合并列,如果前一列(sku列)值不同没有合并,当前列(单价列)也不合并。

方式2、逐条打印
如果需要将关联记录(列表)或子表中每一条记录作为一个整体依次逐条打印,既每一行记录打印时都能显示字段标题,则可在表格上一行和下一行插入以下代码:
#Relation.Repeat[start]#
#Relation.Repeat[end]#
代码之间的所有内容每条记录都会复制一份,并填充对应数据,所以可以是多行多列排版格式
代码不能和其他内容放在一个单元格中,需单独一行。
例如:采购单中,将每一条采购明细单独打印。
打印范例:
格式1比较常见的场景是工资条打印。

模板范例:

TIPS:
如果每条记录之间需要空一行,模板中也空一行并设置为无边框。
