菜鸟电⼦⾯单,⾃定义区设置⽅法
fontweight默认值菜鸟电⼦⾯单打印组件,⾃定义打印区展⽰内容
客户⼀般要求⾃定义打印区⾥⾯,展⽰订单备货信息。
但是官⽅⽂档菜鸟打印交互协议⾥⾯介绍的data设置goodsInfo这种⽅法,经过试验是没法使⽤的。
后来发现由于templateURL可以⾃⼰定义。那就⾃⼰设置⼀个url,并定义好打印内容,内容为备货商品展⽰。
但要注意的是,这个URL必须为满⾜应答头为application/json,否则报错
排版的问题,⽐如长宽⾼的设置值怎么办,我⼀般先到菜鸟打印组件下的设计器先去排版。
再通过获取⽤户的打印模板的接⼝获取⾃定义模板的URL,访问连接
内容格式为菜鸟要求的格式,如下所⽰:
<?xml version='1.0'encoding='UTF-8'?>
<layout id='element_layout_9F7484A0D698A082' left='5' top='5'width='26'
height='6'editor:_for_='element_text_B9D9F95086F51FEE'        style='zIndex:3;overflow:visible;'>
<text value='11112测试规格:规格222 数
量:1'style='wrap:true;direction:horizontal;letterSpacing:0;fontSize:9;lineHeight:5;fontItalic:false;fontFamily:宋体;fontUnderline:false;valign:top;align:left;fontWeight:false'/>
</layout>
</layout>
Java代码如下:
@RequestMapping(value = "/alipay/taobao/myPrintTemplate/{orderId}", method= RequestMethod.GET)
publicvoid myprinttemplate(
@PathVariable(value="orderId") Integer orderId,
HttpServletResponse response){
response.setCharacterEncoding("utf-8");
response.setContentType("application/json");
List<GoodsOrderDetail> dbDetailList = goodsOrderDetailMapper.selectGoodsOrderDetailByOrderId(orderId);
StringBuilder sb = new StringBuilder();
for (GoodsOrderDetail detail : dbDetailList) {
sb.GoodsName());
sb.append(" 规格:");
sb.Specification());
sb.append(" 数量:");
sb.GoodsNum());
}
StringBuffer result = new StringBuffer("<?xmlversion='1.0' encoding='UTF-8'?>");
result.append("<layout id='CUSTOM_AREA'xmlns='cloudprint.cainiao/print'");
result.append("  xmlns:xsi='/2001/XMLSchema-instance'");
result.append("  xmlns:editor='cloudprint.cainiao/schema/editor'top='140'");
result.append("    width='100' height='40' style='zIndex: 1;overflow: hidden;'>");
result.append("    <layoutid='element_layout_9F7484A0D698A082' left='5' top='5' width='26'");
result.append("      height='6' editor:_for_='element_text_B9D9F95086F51FEE'");
result.append("      style='zIndex:3;overflow:visible;'>");
result.append("<text value='");
result.String());
result.append("'style='wrap:true;direction:horizontal;letterSpacing:0;fontSize:9;lineHeight:5;fontItalic:false;fontFamily:宋体;fontUnderline:false;valign:top;align:left;fontWeight:false'/>");
result.append("  </layout>");
result.append("</layout>");
try {
} catch (Exception e) {
e.printStackTrace();
}
}