文档 >>> 模板设计说明                                  菜鸟模板编辑器

模板设计说明

模板绘制

这里的模板是指依据(菜鸟打印标记语言规范)设计出来的面单模板。为了更加快速的进行模板设计与生成,可采用菜鸟官方提供的模板编辑器(菜鸟模板编辑器)。

模板设计:

模板内容:

模板内容分为两种:静态内容和动态内容。

动态内容的编写:

动态内容可以嵌入类似js的代码,在模板中可以通过如下的方式嵌入动态代码:

变量名 说明
_data 该变量表示模板的数据内容,即发送打印数据中的data
_config 该变量表示模板的一些配置信息,详见"_config变量"
_out 内部使用,暂时不对外开放,菜鸟可能会做修改。
_context 打印任务的上下文信息

注:
_开头的变量名都保留给控件使用,请不要在模板中定义_开头的变量名字。

注:fmt支持如下格式化模式:
年(y)可以用2或4个占位符
月(M)可以用1或2个占位符
日(d)可以用1或2个占位符
时(h)12小时制,可以用1或2个占位符
时(H)24小时制,可以1或2个占位符
分(m)可以用1或2个占位符
秒(s)可以用1或2个占位符
毫秒(S)只能用1个占位符(是1-3位的数字)
周(E)可以用1或2或3个占位符
使用示例如下:
_context.formatStartTime("yyyy-MM-dd hh:mm:ss.S")==> 2006-07-02 08:09:04.423
_context.formatStartTime("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04
_context.formatStartTime("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04
_context.formatStartTime("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04
_context.formatStartTime("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
_context.formatStartTime("yyyy-MM-dd hh:mm:ss") ==> 2006-07-02 08:09:04
_context.formatStartTime("yyyy/MM/dd hh:mm:ss") ==> 2016/07/08 03:20:52
_context.formatStartTime("yyyy-MM-dd") ==> 2006-07-02
_context.formatStartTime("hh:mm:ss") ==> 08:09:04

  1. <layout left="6" top="5" width="20" height="20" style="borderStyle:solid;">
  2. <text width="" value="动态数据显示" />
  3. <% for(i=0;i++;i<_data.arrayObject.lenth) {%>
  4. <text width="" value="<%=_data.arrayObject[i].value%>" style="fontSize:12"/>
  5. <%}%>
  6. </layout>

数据:

  1. [
  2. ["收件人"],
  3. ["发件人"],
  4. [ "收货地址"]
  5. ]

动态代码解析之后的静态代码为:

  1. <layout left="6" top="5" width="20" height="20" style="borderStyle:solid;">
  2. <text width="" value="动态数据显示" />
  3. <text width="" value="收件人" style="fontSize:12"/>
  4. <text width="" value="发件人" style="fontSize:12"/>
  5. <text width="" value="收货地址" style="fontSize:12"/>
  6. </layout>

模板布局说明

模板中所有元素都采用相对坐标,即相对其父节坐标来表示。如下图所示,这是一个典型的模板布局示意图,其中:

注:layout可用来灵活控制整体布局,主要作用如下:

[返回页首](#header)

模板设计示例

以中通为例,典型的模板效果图如下所示:

中通模板

注:
- 模板内以下划线"_"开始的属性为菜鸟模板的内置变量
- 模板内以edit:开头的属性为模板编辑器中使用的私有属性,非标记语言元素

如果模板中需要预留商家自定义区,商家自定义区中不需要page元素,最外层有且只有一个layout,且这个最外层的layout需要要有属性id=”CUSTOM_AREA”。
标准板示例:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <page xmlns="http://cloudprint.cainiao.com/print" width="100" height="180">
  3. <layout left="0" top="0" width="100" height="150" style="zIndex:1;overflow:visible;">
  4. <rect style=""></rect>
  5. </layout>
  6. <layout ref="CUSTOM_AREA" left="1" top="150" width="100" height="30" style="overflow:hidden;">
  7. </layout>
  8. </page>

商家自定义区示例:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <layout xmlns="http://cloudprint.cainiao.com/print" id="CUSTOM_AREA" left="0" top="140" width="100" height="40">
  3. <layout left="1" top="0" width="100" height="10">
  4. <text value="自定义区域内容测试"/>
  5. </layout>
  6. <layout left="1" top="10" width="100" height="10">
  7. <text value="custom area test"/>
  8. </layout>
  9. </layout>

示例模板代码可参考:
http://cloudprint.cainiao.com/template/standard/101

2016 cainiao.com 版权所有。菜鸟网络保留修改权利。