单元属性,指定模板表格单元的具体特征属性:是否为字段单元,字段单元的数据类型、格式等等。通过单元属性窗口来设置模板中单元的属性,此窗口缺省位于主窗口右侧, 可在模板属性、页面属性、以及单元属性之间切换:鼠标点击表格中的任意单元,则属性窗口切换为单元属性。另外,单元属性和页面属性,可以通过属性窗口顶部的下拉框来相互切换。
指定单元是否为字段(或者称为变量)单元。
| ➤ | 否,则为非字段单元 |
| 又称为标识单元,其作用类似于Windows中的标签(Lable)或者静态框。在打印输出过程中不能改变标识单元的内容。 对于非字段单元,诸如数据属性等均无意义。 | |
| ➤ | 是,则为字段单元 |
| 类似于Windows中的编辑框等。在打印输出过程中,其内容是客户端传递过来的相应数据。 |
字段单元的名称。必须为字段单元起一个名称。如果“名称”为空,则被认为是非字段单元。
命名规范:名字中可以包含汉字、字母、数字等,但不可以包含 + - ( ) [ ] { } < > , . : ; ' | / ~ ! @ # $ % ^ & * " \。
同一个模板页中的字段单元,其名称要具有唯一性。
单元名称通常是手动输入的。如果希望通过弹框选择输入由后台返回字段名等信息,那么需要设置字段信息源。
数据类型,包括:文本、数值、日期/时间、布尔、二进制。
数据格式,指定数据的输出形式。不同的数据类型有这不同的数据格式:
| ➤ | 文本 |
| 针对文本类型数据,其格式一般为空,除非: | |
| ①如果将文本以一维条码形式输出,则需在此选择一种一维码的编码。 | |
| ②如果将文本以二维码形式输出,则需在此选择你需要的二维码,可以是:QRCode、DataMatrix或者PDF417。
对于QRCode:可以在格式中指定符合规范的纠错等级(L、M、Q、H)和版本(1~40),例如:二维码:QRCode Q2,则指定纠错等级为Q,版本为2。 对于DataMatrix:可以在格式中指定符合规范的输出模块数,例如:二维码:DataMatrix 48X16,则输出宽度48模块、高度16模块。 |
|
| ③选择“富格式”,则可以显示由一组JSON对象描述的“富格式”文本。富格式文本用于图文混排,其中可以包含各种字体的文本、图像、条码、换行等内容。相应的JSON对象如下: | |
|
文本: {"type":"text","content":"...","prop":"..."},这里,type为类型,这里是文本text;content为文本内容字符串;porp为文本样式,其形式与Unit对象的方法TextStyle一致。如果没有porp或者prop为空,则文本样式为当前文本样式。 图像: {"type":"image","content":"...","prop":"..."},这里,type为类型,这里是图像image;content为图像URL、本地路径或者base64等;prop形式如“h:2.3,w:1.8”,用于指定图像显示高度和宽度,单位厘米。 换行: {"type":"newline"},很简单,type为newline即可。 条码: {"type":"code39","content":"...","prop":"..."},这里,type为类型,这里是code39;content为条码内容;prop形式如“h:2.3,w:1.8,c:0”,用于指定图像显示高度、宽度(单位厘米)和颜色。 type还可以是:code93、Code128A、Code128B、Code128C、CodeI2of5、CodeEan13、QRcode。 选择框: {"type":"checkbox","content":...,"prop":"..."},这里,type为类型,这里是选择框(或称检查框)checkbox;content为true或false,为true则勾选,否则未勾选;prop形式如“h:4.0,c:255,l:0.5”,分别用于指定选择框的大小(单位mm,缺省值为5)、颜色(缺省值为0,即黑色)和框线宽度(单位磅point,缺省值为1)。 上下标: {"type":"supersubscript","content":...,"prop":"..."},这里,type为类型,这里是supersubscript;content为字符串,一般被两个分号分隔成三个部分(比如字符串"A;B;C",则输出为A,B为上标,C为下标;如果字符串"X;y",则输出X的y次方。),上标与下标字符可以为空(即没有上标或下标);porp为文本样式,其形式与Unit对象的方法TextStyle一致。如果没有porp或者prop为空,则文本样式为当前文本样式。 |
|
/**
* “富文本”示例。一个富文本,就是一个包含任意上述文本、图像、换行JSON对象的数组。本代码示例中,假设模板字段单元名为:describe,其格式为富文本。
*/
var objRichText=[
{
"type":"text",
"content":"我爱北京天安门",
"prop":"c:255,b:true,n:楷体"
},
{
"type":"supersubscript",
"content":"X;y", //输出X的y次方
"prop":"c:0,n:微软雅黑"
},
{
"type":"checkbox",
"content":true,
"prop":"h:3.5,l:0.5,c:0"
},
{
"type":"newline"
},
{
"type":"image",
"content":"http://www.mywebsite.com/image/morning.jpg",
"prop":"h:3,w:3.5"
}
...
];
var pw = GetPrintWorld();
var data={};
data.describe=objRichText;
...
var json = {};
json.action = "preview"; //预览
json.data = data;
pw.Act(json); //发送数据给打天下打印服务
|
|
| ➤ | 数值 |
| 对于数值类型,一般需要选择一个合适的输出格式,来确定小数位数。 | |
| ➤ | 日期/时间 |
| 需要选择一个合适的输出格式。 | |
| ➤ | 布尔 |
| 需要选择一个合适的输出格式。 | |
| ➤ | 二进制 |
| 需要选择一个合适的输出格式,诸如“图像”等。传递给“图像“单元的数据可以是:①位于Web服务器上的图像文件URL(绝对地址,不能是相对地址);②本地文件(全路径);③将图像数据Base64编码后的字符串;④资源 | |
| 图像在不改变原尺寸横纵比的前提下缩放以适应单元。如果格式为“图像+”(即在格式属性中选择“图像”,然后输入一个+号),则图像被缩放以铺满单元。 |
对于数值类型才有意义。用于指定输出数值的前缀/后缀。比如,对于金额3678.90,如果前缀为¥,则实际输出:¥3678.90。
填写计算公式。
或称为容器类型,指的是单元包含动态对象的类型,即此单元做为动态对象容器,它包含哪种类型的动态对象。缺省为空,即不做为包含动态对象的容器。可选的容器类型如下:
| ➤ | 单选框 |
| 将单元中的选择框对象做为动态对象,其中只有一个选择框可以被勾选。 | |
| ➤ | 多选框 |
| 将单元中的选择框对象做为动态对象,其中多个选择框可以同时被勾选。 | |
| ➤ | 文字框 |
| 将单元中的单字框对象做为动态对象,传来的数据被写到这些框里,每个框中最多有一个字或字母或数字。 | |
| ➤ | 混合 |
| 将单元中的(除单字框之外的)对象,诸如内嵌文本对象等不止一种对象做为动态对象。 |
示例采购合同中用到了“混合”容器,可参考。
联合,全称为联合名称。具有相同联合名的单元,将联合为一个单元。联合有数值联合、日期联合、文本联合3种类型。只有在某些特殊的应用场景,联合会带来一些便利,当然,你完全可以不用联合。
| ➤ | 数值联合 | 即针对数值类型的联合。举例如下: | |||||||||||||||||||||||||||||||||||||||
下图是一支票的局部,其中的资金栏(红色圈起来的部分),就是数值联合:将其中的11个数值单元“联合”起来的,如此,这11个单元可视为一个单元来处理。图中,传来的数值为356712.5。![]() 为了正确地设置上图所示的联合,除了为这些单元指定同一个联合名称外,你还需要:
|
|||||||||||||||||||||||||||||||||||||||||
| ➤ | 日期联合 | 即针对日期的联合。有3单元日期联合和8单元日期联合,通常在“套打”应用场景下,才有必要用到日期联合。举例如下: | |||||||||||||||||||||||||||||||||||||||
|
3单元日期联合 顾名思义,3单元日期联合,就是由3字段个单元来显示分别显示日期的年、月、日,如图所示,灰色的三个单元:
另外,如果给其中的year单元指定(数据)格式:年(中文大写),则输出如图: 8单元日期联合 与3单元日期联合类似,只不过,8单元联合是将4位年、2位月以及2位日共8位数字,使其每位占用一个字段单元,然后联合之。 如上图所示的8个(虚线)单元,就是8单元联合日期单元,其单元属性见下表:
|
|||||||||||||||||||||||||||||||||||||||||
| ➤ | 文本联合 | 即针对文本的联合。有单字符单元联合和多字符单元联合。 单字符单元联合是字符串中的每一个字符占一个单元;多字符单元联合则是字符串可以分布多个单元,但是单元中的字符数可以大于1。 |
参考示例:支票中用到了数值联合、有3单元日期联合。
用于指定在单元容纳不下包含的文本内容时,如何处理。
| ➤ | 遮挡 |
| 遮挡超出的部分 | |
| ➤ | 延展 |
| 自动纵向扩展单元高度以适应文本高度。 仅仅将“延展”设置为“是”,是不能做到单元自动适应文本高度的,还需要在模板属性中,将打印模式属性设为“动态加页”、“动态加高”、“拼接分页”或者“拼接加高”才行。 如此,即为动态模板。 |
|
| ➤ | 收缩 |
| 缩小字体以使所有内容可见。 | |
| ➤ | 收缩为单行 |
| 缩小成一行,且以使所有内容可见。 |
参考示例:采购合同中用到了“延展”,以扩展含有大段合同文本的单元,并可以在超出页面时截断并分页。
很多时候,模板表格需要包含多行明细信息,这些明细信息输出于一个M x N(M行N列)的表格结构中,如下图中的浅蓝色部分,是一个7行9列的明细输出区域。

如何将上图蓝色区域定义为一个明细呢?这就需要将明细结构首行各单元的“名称”、“类型”等单元属性定义好,并在明细结构的左上角单元,定义如下“明细”属性:
| ➤ | 名称: | 明细名称,起一个适当的明细名,比如“明细”、“details”等等。其命名规范与字段单元名称的命名规范一致。 |
| ➤ | 行数: | 明细结构的行数,又称为明细的结构行数,不能小于1(但是,行数乘以列数不能小于2)。对于上图中的明细来说,行数为7。 |
| ➤ | 列数: | 明细结构的列数,不能小于1(但是,行数乘以列数不能小于2)。对于上图中的明细来说,列数为9。 |
| ➤ | 类型: | 可选“静态”、“动态”或者“交叉”。 |
| ①静态:所谓静态,指的是模板的结构是静态的、不变的。 |
||
| ②动态:可以根据实际数据行数来动态改变明细的行数。仅仅此属性选择“动态”,还不可以使明细行动态改变,还要将模板的打印属性设置为“加页”、“加高”、“拼接分页”或者“拼接加高”才行。如此,即为动态模板。 | ||
| ③交叉:交叉明细的列数是根据实际数据而变化的。如果让其行数也动态改变,那么将模板的打印属性设置为“加页”、“加高”、“拼接分页”或者“拼接加高”即可。 |
||
| ➤ | 首部: | 指定动态明细上面的若干行做为(在明细内)分页后的明细标题。 |
| ➤ | 尾部: | 指定动态明细上面的若干行做为(在明细内)分页后的明细尾部。 |
| ➤ | 补空: | 是否为明细补充空行以打满整页。 |
| ➤ | 分页: | 是精准分页还是在明细内分页。 |
明细中除了结构行,还有数据行这一概念:明细数据行,是指传递给打印服务器的数据中实际所包含的明细数据的条数,可能大于,也可能小于实际的结构行数。
定义了明细属性的M x N的表格结构,称为明细结构,简称明细。需要强调的是:明细结构中所有单元,只需要设置其首行的单元属性即可,其余行的各个单元,不必设置其属性,因为,系统在打印时,会自动获得其对应列首行单元的相应属性。
变量查看模式,点击工具条按钮
,则进入变量查看模式(再次点击此按钮或者按Esc则退出此模式),如下图所示,明细结构中只有首行的各单元设置了比要的属性:

套打,是指在预印刷的的纸张上的某些指定位置打印输出指定的内容,诸如各种银行票据、传统快递单、工商营业执照等等不一而足。将模板的打印模式指定为套打,则模板即为套打模板,除此之外,“打天下”套打模板与其他类型的模板基本是没有的区别的。
套打模板的表格线是不输出的。
这里的套打相关属性,只对套打模板有意义。
| ➤ | 输出: | 对应单元的内容是否套打输出。选择是或者否。 |
| ➤ | 横偏: | 指定套打输出时,单元内容在原位置的基础上的水平偏移量,单位毫米。缺省为0.0,即无横向偏移。 如果实际打印位置在水平方向上偏离了预定位置,可在此设置偏移:大于零,向右偏移,小于零,向左偏移。 |
| ➤ | 纵偏: | 指定套打输出时,单元内容在原位置的基础上的垂直偏移量,单位毫米。缺省为0.0,即无横向偏移。 如果实际打印位置在垂直方向上偏离了预定位置,可在此设置偏移:大于零,向下偏移,小于零,向上偏移。 |
模板单元属性中的字段单元名称是手工填写的,如果需要弹框选择填充字段名,那么需设置字段信息源 ,服务端需要根据模板设计器的请求返回相应的字段信息。
1、设置字段信息源URL,指向后台服务端。
执行主菜单命令:文件->字段信息源,弹出会话框如下:

| ➤ | URL: | 指向(用于返回字段信息的)服务端URL,比如:http://www.alipapa.com/xxxPath/GetFields.jsp。 |
| ➤ | 用户: | 用户名,用于服务端身份认证,如果不需要认证,可为空。 |
| ➤ | 密码: | 密码,用于服务端身份认证,如果不需要认证,可为空。 |
| ➤ | 附加: | 通过URL向后台请求字段信息时提交的附加信息,可为空。 |