前段时间遇到过一个奇怪的问题,就是代码里本身都是ENA13大写,却提示条码类型无效,而且进入打印设计后,选中打印项,条码类型变成了code39,但是实际是还有条码类型参数都是正确的,代码看上去没有问题。
个人实际测试了一下出问题的代码,发现把ENA13的单引号变成双引号,这个提示就没了,奇怪的问题,JS中单双引号明明效果是一样的。
本人用单引号测试了几个其他位置的同样和不同样的ENA13条码,位置参数用默认值和字符型都对比了几次,条码值也无关,都没有报错,而且这个有问题的条码语句,单纯的把宽度修改或高度修改,也不会再报错,所以是个比较奇怪的问题,目前没有找到什么原因导致的,数值也没超出范围,修改成双引号就正常了,换成其他数值也正常。
解决方法就是给ENA13这个参数字符串,用双引号包裹起来,就可以不再提示。
测试代码:
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>WEB打印控件LODOP</title> <script language="javascript" src="LodopFuncs.js"></script> </head> <body> <a href="javascript:prn1_preview()">单引号的条码类型</a><br> <a href="javascript:prn2_preview()">双引号的条码类型</a><br> <a href="javascript:prn3_preview()">测试没有发现ean</a><br> <script language="javascript" type="text/javascript"> var LODOP; //声明为全局变量 function prn1_preview() { LODOP=getLodop(); LODOP.PRINT_INIT(""); LODOP.ADD_PRINT_BARCODE('38mm','45mm','36.35mm','6mm','ENA13','2120389000014');//不正常,提示 LODOP.PREVIEW(); }; function prn2_preview() { LODOP=getLodop(); LODOP.PRINT_INIT(""); LODOP.ADD_PRINT_BARCODE('38mm','45mm','36.35mm','6mm',"EAN13",'2120389000014');//正常 LODOP.PREVIEW(); }; function prn3_preview() { LODOP=getLodop(); LODOP.PRINT_INIT(""); LODOP.ADD_PRINT_BARCODE(28,34,307,47,'EAN13','2120389000014');//其他位置参数,正常 //LODOP.ADD_PRINT_BARCODE('38mm','45mm','36.35mm','6mm','ENA13','2120389000014');//有问题的语句 LODOP.PRINT_DESIGN(); //LODOP.PREVIEW(); }; </script> </body>
图示:
该问题比较奇怪,原因不明,代码里条码类型没有问题。其他值也没有影响,改成双引号就好了。