基于springboot对接芯烨云无线打印机(非云打印机)

前言:最近公司产品经理提了一个无线打印的功能,看了一下打印机官网文档,花费几天时间,对接成功,在此先记录一下。

1 下载芯烨云开发包以测试工具(芯烨云官网

2 配置芯烨云打印网口

  1. 选择自己购买的打印机型如下图所示(我的是XP-80):

在这里插入图片描述
2. 配置打印机固定ip
2.1首先点击高级,进入网络设置
2.2配置ip 如下图所示:
在这里插入图片描述
其中SSID 代表wifi名称,ip地址填写自己要设置的ip,默认网关填写wifi路由器地址
2.3 在路由器上绑定打印机ip与max地址
2.3.1 首先登录路由器
在浏览器输入路由器ip地址,登入,进入如下页面:
在这里插入图片描述
绑定自己打印机的ip与max地址即可

3 对接打印机

在自己springboot项目引入开发包PostPrinterSDK.jar
在这里插入图片描述
编写对接打印机代码

public void remoteprint(SZQHJL info) {
        //未指定打印机ip,不进行打印操作
        if(!org.springframework.util.StringUtils.hasLength(ip)){
            return;
        }
        Socket socket = null;
        OutputStream out =null;
        try {
            Thread.currentThread().sleep(500);//等待500ms,防止旧socket连接未关闭
            socket=new Socket(ip , port);
            socket.setSoTimeout(5000);
            out = socket.getOutputStream();
            List<byte[]> list = new ArrayList<>();
            String title = String.format("%1$s排号凭证",orgname);
            addTitleline(list, title);
            addline(list,"单号: ",info.getXh().toString(),"取号时间: ", Tools.getDate(new Date(info.getQhsj().getTime())));
            addline(list,"姓名: ", Tools.getName(info.getSzqhjlName()),"年龄: ", Tools.getAge(info.getZjhm(),null));
            addline(list,"身份证号码: ", Tools.desensitizedIdNumber(info.getZjhm()));
            addQRcode(list,48,getdsxfurl(info));
            addCenterline(list,"温馨提示:你可用手机扫描上方二维码,查询历史信访");
            addCenterline(list,"记录,上传相关材料。");
            list.add(DataForSendToPrinterPos80.printAndFeedLine());
            list.add(DataForSendToPrinterPos80.printAndFeedLine());
            list.add(DataForSendToPrinterPos80.printAndFeedLine());
            for (int i = 0; i <list.size() ; i++) {
                if(!socket.isConnected()){//如果连接断开了
                    for (int j = 0; j < 3; j++) {//重新尝试连接三次
                        socket=new Socket(ip , port);
                        socket.setSoTimeout(5000);
                        if(socket.isConnected()){
                            break;
                        }
                    }
                }
                if(socket.isConnected()) {
                    out.write(list.get(i));
                    Thread.currentThread().sleep(60);
                }
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        } finally {
            try {
                if(out!=null) {
                    out.flush();
                }
                if(socket!=null&&socket.isConnected()) {
                    socket.close();
                }
                out=null;
                socket=null;
            } catch (IOException e) {
                throw new RuntimeException(e);
            }

        }

    }

打印机sdk使用实例以及编码规范请参考官网
对于这方面有什么问题可以在评论区留言

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值