现在项目上有个需求是要在手持pda上,通过点击按钮打印二维码及文字标签,打印机设备是斑马标签打印机,pda是安卓机
经查阅资料后,目前可实现的方案有以下几种:
1.通过蓝牙连接打印机打印
2.通过打印机IP和端口,使用soket连接打印机打印
方案1:通过蓝牙
uniapp前端检测当前pda已连接的蓝牙设备,调用蓝牙打印机的打印事件;
但是由于斑马打印机系统蓝牙的设定(安卓设备蓝牙连接打印机时,打印机的蓝牙会自动断开),必须在pda上下载斑马提供的app,由斑马app进行蓝牙连接,这样才能保持蓝牙长连;
另外,当生产环境中,pda数量较多时,打印机同时进行蓝牙连接的数量有限 相关资料:(原生蓝牙打印插件通用机型 - DCloud 插件市场)
方案2:通过IP和端口
通过打印机的IP和端口使用soket连接打印机,然后导入斑马打印机的SDK,使用斑马的ZPL语言(GitHub - btmood/zbreazpldemo: 斑马打印机ZPL编程Demo)进行标签打印 相关资料:前端连接打印机((43条消息) uniapp实现打印功能_uniapp 打印功能_嗬呜阿花的博客-CSDN博客)
如果打印中文出现乱码,可以用以下方案:
// 将
var outputStreamWriter = new OutputStreamWriter(socket.getOutputStream());
// 替换为
var outputStreamWriter = new OutputStreamWriter(socket.getOutputStream(),'gbk');