Javascript 使用cordova打印到imz320,zpl内容包含来自ios的阿拉伯语文本

Javascript 使用cordova打印到imz320,zpl内容包含来自ios的阿拉伯语文本,javascript,ios,cordova,platform,zpl,Javascript,Ios,Cordova,Platform,Zpl,我正在使用cordova开发一个混合应用程序。我能够在android版本中用阿拉伯语打印zpl内容。但同样的zpl代码在ios版本中不起作用。打印机收到信号,蓝光闪烁。但如果内容是阿拉伯语文本,则无法打印 我用的是Zebra iMZ320打印机。你能分享一个同样的工作示例吗?ios的阿拉伯语内容 var TestPrint=“^XA^FO50,50^A@E:TT0003M。TTF,N,50,50^FD“+”FS^XZ“; //-- "ÙحاÙÙØ©" localStorage.iosCon

我正在使用cordova开发一个混合应用程序。我能够在android版本中用阿拉伯语打印zpl内容。但同样的zpl代码在ios版本中不起作用。打印机收到信号,蓝光闪烁。但如果内容是阿拉伯语文本,则无法打印

我用的是Zebra iMZ320打印机。你能分享一个同样的工作示例吗?ios的阿拉伯语内容

var TestPrint=“^XA^FO50,50^A@E:TT0003M。TTF,N,50,50^FD“+”FS^XZ“;
//-- "ÙحاÙÙØ©"
localStorage.iosConnected_ZebraPrinter_Name='XXXXJ142401535';
window.plugins.CordovaPrinter.print(
函数(成功){//调用print方法
console.log('平台:ios,已成功打印…'
+“\n-thru.”,localStorage.iosConnected\u ZebraPrinter\u Name);
},
函数错误(err){
console.log('打印到'+localStorage.iosConnected\u ZebraPrinter\u Name'时出错);
控制台日志(err);
},
localStorage.iosConnected\u ZebraPrinter\u名称,//serialArray[0],

测试打印)经过一个多月的努力,终于找到了解决问题的方法,如下所示:

//-阿拉伯语文本编码-用于IOS---------------------------
/*-----字符串到utf-8编码十六进制-----*/
函数toHex(str,hex){
试一试{
//我们添加了“-”,因为需要在utf-8十六进制代码前面加下划线,以便在ZPL中打印
十六进制=''+unescape(encodeURIComponent(str))
.分割('').映射(功能(v){
返回v.charCodeAt(0).toString(16)
}).加入
}
捕获(e){
十六进制=str
console.log('无效文本输入:'+str)
}
返回十六进制
}
//-例如:console.log(“+str+”的toHex是:“+toHex(str,16));
//----------------------------------------------------------
var TestPrint=“^XA”+
“^LH100150”+
^CWT,E:TT0003M\uUt.FNT+
^CFT,30,30+
“^CI28”+
“^FT0,0^FH^F测试1 2 3…^FS”+
“^FT0,50^FH^FD”+toHex(str,16)+“^FS”+
“^FT0100^B3^FDAAA001^FS”+
“^XZ”;
log('TestPrint:',TestPrint);
localStorage.iosConnected_ZebraPrinter_Name='XXXXJ142401535';
window.plugins.CordovaPrinter.print(
函数(成功){//调用print方法
console.log('平台:ios,已成功打印…'
+“\n-thru.”,localStorage.iosConnected\u ZebraPrinter\u Name);
},
函数错误(err){
console.log('打印到'+localStorage.iosConnected\u ZebraPrinter\u Name'时出错);
控制台日志(err);
},
localStorage.iosConnected\u ZebraPrinter\u名称,//serialArray[0],

测试打印)经过一个多月的努力,终于找到了解决问题的方法,如下所示:

//-阿拉伯语文本编码-用于IOS---------------------------
/*-----字符串到utf-8编码十六进制-----*/
函数toHex(str,hex){
试一试{
//我们添加了“-”,因为需要在utf-8十六进制代码前面加下划线,以便在ZPL中打印
十六进制=''+unescape(encodeURIComponent(str))
.分割('').映射(功能(v){
返回v.charCodeAt(0).toString(16)
}).加入
}
捕获(e){
十六进制=str
console.log('无效文本输入:'+str)
}
返回十六进制
}
//-例如:console.log(“+str+”的toHex是:“+toHex(str,16));
//----------------------------------------------------------
var TestPrint=“^XA”+
“^LH100150”+
^CWT,E:TT0003M\uUt.FNT+
^CFT,30,30+
“^CI28”+
“^FT0,0^FH^F测试1 2 3…^FS”+
“^FT0,50^FH^FD”+toHex(str,16)+“^FS”+
“^FT0100^B3^FDAAA001^FS”+
“^XZ”;
log('TestPrint:',TestPrint);
localStorage.iosConnected_ZebraPrinter_Name='XXXXJ142401535';
window.plugins.CordovaPrinter.print(
函数(成功){//调用print方法
console.log('平台:ios,已成功打印…'
+“\n-thru.”,localStorage.iosConnected\u ZebraPrinter\u Name);
},
函数错误(err){
console.log('打印到'+localStorage.iosConnected\u ZebraPrinter\u Name'时出错);
控制台日志(err);
},
localStorage.iosConnected\u ZebraPrinter\u名称,//serialArray[0],

测试打印)添加您尝试的代码将帮助人们回答。感谢您的评论-Purus,我现在已共享了代码。您在控制台中收到任何错误日志吗?没有。打印机指示灯只会闪烁并熄灭。但是不打印添加您尝试的代码将有助于人们回答。谢谢您的评论-Purus,我现在已经共享了代码您在控制台中有任何错误日志吗?没有。打印机指示灯只是闪烁并熄灭。但是没有得到printed@SSubhaharan我们能把html转换成ZPL吗?@Subhaharan我们能把html转换成ZPL吗?