前言:

目前开发需要用到电脑直接连接外卖小票机打印小票,查阅各种资料,使用 HttpPrinter 终于解决了这个问题。

效果:

PHP、JavaScript直接连接小票机并且自动出票。

支持的小票机:

目前测试可以的有:电脑A4打印机、佳博GP58MBIII(USB直连)、芯烨xp-58IIL(usb)。原则上可以支持所有USB连接的小票机,目前模板是按58MM设置的。

//打印Pos小票 begin
        function print(arr){
            var ip = $("#ip").val();
            var port = $("#port").val();
            if(ip==""||port==""){alert("ip,port不能为空"); return false;}
            //处理食品数据
            var foodsJson = '';
            for (var i=0;i             {
                foodsJson   = foodsJson + '{"shangpname":'+arr.foods[i].name +',"shuliang":'+ arr.foods[i].count+', "je":'+ arr.foods[i].price+'},';
            }
            var msg = '{'
                +'"method":"' + 'printreport' +'"'  /*报表类型 gridreport fastreport reportmachine 为空 将默认为gridreport  */
                +',"ReportType":"' + 'fastreport' +'"'  /*报表类型 gridreport fastreport reportmachine 为空 将默认为gridreport  */
                +',"ReportName":"' + 'AAAlqs.fr3' +'"' /*报表文件名 POS小票 */
                +',"ReportVersion":"' + '1' +'"' /*可选。报表版本, 为空则默认1  如果本地报表的版本过低 将从 ReportUrl 地址进行下载更新*/
                +',"ReportUrl":"' + '' +'"' /*可选。为空 将不更新本地报表 , 如果本地报表不存在可以从该地址自动下载*/
                //+',"ReportUrl":"' + 'http://localhost/test.fr3' +'"' /*可选。为空 将不更新本地报表 , 如果本地报表不存在可以从该地址自动下载*/
                +',"Copies":"' + '1' +'"' /*可选。打印份数,支持指定打印份数。默认1份,如果为零,不打印,只返回报表生成的pdf,jpg等文件*/
                +',"PrinterName":"' + arr.usb +'"' /*可选。指定打印机,为空的话 使用默认打印机, 请在 控制面板 -> 设备和打印机 中查看您的打印机的名称 */
                +',"PrintOffsetX":"' + '0' +'"' /*可选。打印右偏移,单位厘米。报表的水平方向上的偏移量,向右为正,向左为负。*/
                +',"PrintOffsetY":"' + '0' +'"' /*可选。打印下偏移,单位厘米。 报表的垂直方向上的偏移量,向下为正,向上为负。*/
                +',"Preview":"' + '0' +'"'  /*可选。是否预览,和主界面设置的效果一样 为空默认不预览,   0:不预览,1:预览(弹出导出的pdf,jpg等文件)。*/
                +',"token":"' + 'aa' +'"' /*可选。只要token值在列表中 方可打印*/
                +',"taskId":"' + '1234567' +'"' /*可选。多个打印任务同时打印时,根据该id确定返回的是哪个打印任务。 */
                +',"exportfilename":"' + '' +'"'  /*可选。自定义 导出 文件名称 为空 或者 自定义名称 如 test */
                +',"exportfiletype":"' + '' +'"'  /*可选。自定义 导出 文件格式 为空 或者 自定义名称 如 pdf  */
                +',"AField": ['  ///*字段, type ftBlob (base64格式) ,ftString ftInteger ftBoolean, ftFloat, ftCurrency,ftDateTime,  size (ftString 设置为实际长度,其他的设置为0,例如 ftInteger ftBlob 等设置为0 )
                +'{"type": "ftString", "name": "title","size": 255,"required": true},'
                +'{"type": "ftString", "name": "subTitle","size": 255,"required": false},'
                +'{"type": "ftString", "name": "deskname","size": 255,"required": false},'
                +'{"type": "ftString", "name": "djh","size": 255,"required": false},'
                +'{"type": "ftString", "name": "czy","size": 255,"required": false},'
                +'{"type": "ftString", "name": "starttime","size": 255,"required": false},'
                +'{"type": "ftString", "name": "tf","size": 255,"required": false},'
                +'{"type": "ftString", "name": "ysje","size": 255,"required": false},'
                +'{"type": "ftString", "name": "yhje","size": 255,"required": false},'
                +'{"type": "ftString", "name": "sjje","size": 255,"required": false},'
                +'{"type": "ftString", "name": "kahao","size": 255,"required": false},'
                +']'
                +',"AData": ['  ///*数据行
                +'{"title":'+ arr.shopname+arr.num
                +', "subTitle": "订单号:'+arr.ordernumstore
                +'", "deskname": "时间:'+arr.time
                +'", "djh": "地址:'+arr.address
                +'", "czy": "姓名:'+arr.person
                +'", "starttime": "电话:'+arr.tel
                 +'", "tf": "", "ysje":'+ arr.peisong
                +', "yhje":'+arr.amount
                +', "sjje":'+ arr.noteTex
                +', "kahao": "890001"},'
                +']'
                +',"BField": ['  ///*字段, type ftBlob (base64格式) ,ftString ftInteger ftBoolean, ftFloat, ftCurrency,ftDateTime,  size (ftString 设置为实际长度,其他的设置为0,例如 ftInteger ftBlob 等设置为0 )
                +'{"type": "ftString", "name": "shangpname","size": 255,"required": true},'
                +'{"type": "ftString", "name": "shuliang","size": 255,"required": false},'
                +'{"type": "ftString", "name": "je","size": 255,"required": false},'
                +']'
                +',"BData": ['  ///*数据行
                +foodsJson
                +']'
                + '}';
            jQuery.support.cors = true;         //写到$.ajax $.get $.post 前面 解决 jQuery.Ajax IE8,9 无效(CORS跨域)
            $.ajax({
                async : false, //循环打印时, async 必须设置为 false,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
                url : "http://"+ip+":"+port+"/",
                type : "POST",
                contentType: "application/x-www-form-urlencoded", //要这样设置
                //contentType: "application/json", //错误方式
                dataType : "json", //设置为 json 格式
                //dataType : "text", //设置为 text 格式 也可以,但是返回的结果需要自己解析判断
                //crossDomain: true,  //crossDomain true 或者false 无所谓,不用设置的
                data : msg,
                beforeSend: function (XMLHttpRequest) {
                    // beforeSend 函数里 不允许添加任何 东西
                    //XMLHttpRequest.setRequestHeader("token", 'abcd1234'); //不允许 使用jQuery发送AJAX请求时在header中添加Token
                },
                success: function(data){
                    // console.log(JSON.stringify(data));
                    if(data.status=="ok"){
                        // alert("打印成功:"+data.data);
                        console.log('订单id')
                        console.log(arr.id)
                        var audio= new Audio("/tip.mp3");//这里的路径写上mp3文件在项目中的绝对路径
                        audio.play();//播放
                        isDayin(arr.id);
                    }else{
                        // alert("打印失败:"+data.data);
                    }
                },
                error: function(data){
                    //console.log(status, response);
                    console.log(JSON.stringify(data));
                    // alert("连接打印机失败"+arr.usb);
                }
            });
        }
//打印Pos小票 end
效果图:

javaScript、PHP连接外卖小票机打印机方案(调用佳博、芯烨等)相关推荐

  1. javaScript、PHP连接外卖小票打印机方案

    前言: 目前开发需要用到小程序或者电脑程序连接外卖小票机打印小票,查阅各种资料,终于解决了这个问题. 效果: PHP.JavaScript直接连接小票机并且自动出票. 支持的小票机: 目前测试可以的有 ...

  2. 佳博/芯桦打票机对接(含USB和网口)

    佳博/芯桦打票机对接(含USB和网口) 记录一下最近实现的一个需求,用PHP远程连接芯桦.佳博打票机,代码还未进行优化,基本功能已经实现打印,具体打印指令需要查看佳博/芯桦的打票机指令,USB口打印质 ...

  3. 餐厅小票打印模板_快麦打印机教程 | 如何用手机控制DP358外卖小票机?

    DP358外卖自动打单机,智能接单,自动打印. 自主开发的快麦云软件系统绑定打印机后,用户即可在手机端随时掌控你的打印机,调节打印速度和浓度.音量大小,都可在手机端完成. 快麦统一提供应用管理软件,集 ...

  4. 餐厅小票打印模板_教程 | 如何用手机控制DP358外卖小票机?

    DP358外卖自动打单机,智能接单,自动打印. 自主开发的快麦云软件系统绑定打印机后,用户即可在手机端随时掌控你的打印机,调节打印速度和浓度.音量大小,都可在手机端完成. 快麦统一提供应用管理软件,集 ...

  5. 手机蓝牙连接小票机/打印机,输入PIN码后确定键不亮的解决办法

    如果以前配对过,就在手机蓝牙里取消配对,然后把机器关掉,手机蓝牙关掉. 重新配对连接,可以用了. 就没有重启不能解决的问题,如果有,就重启两遍.

  6. 安卓连接pos小票机和钱箱

    测试工具具体用到: 1.58热敏打印机 2.钱箱 3.Android Studio 2.2.2 4.测试平板一台 端口号打印机一般都是9100 首先把打印机固定IP设置好,然后所有设备连接到同一网络( ...

  7. web应用 远程调用佳博打印机进行条码打印(详细教程)

    需求: 通过html调用本地服务启动打印机,带参数去打印不同内容. 步骤: 1. 生成可直接执行的exe程序. 2. 注册服务. 3. 前端调用测试. 1. 生成可直接执行的exe程序 1.1 前提: ...

  8. 苹果电脑怎么设置佳博标签打印机_自动接单、打印快,手动调节音量,佳博推出后厨专用智能打印机...

    新零售时代,商家如何掌握线上线下的海量订单?如何实现顾客下单到柜台出单的实时配送?顾客如何在付款成功后及时拿到发票?智能云打印机,轻松对接各个行业,为新零售而生,让接单.报销更省心.对于餐饮行业来说, ...

  9. 佳博打印机接入(java)

    需求:某司要求做的web端应用调用本地打印机(佳博),打印内容从后端获取.思路变成了前端获取内容,传输到打印机,调用打印功能.这里我的另一篇文章已经完成前端带参数调用打印功能,有需要的同志们可以去TO ...

  10. java使用佳博打印机打印标签

    文章目录 1.前言 1.1打印机型号及驱动说明 1.2背景概要 2.填坑 3.上代码 1.项目截图 2.==中文打印需要注意两点== 3.项目源码 4.总结 1.前言 1.1打印机型号及驱动说明 打印 ...

最新文章

  1. 2021年大数据Hadoop(二十五):YARN通俗介绍和基本架构
  2. 物联网安全:LED灯中存在多个安全漏洞
  3. express的cookie解析和签名源码解析
  4. Nginx 代理 WebSocket
  5. 【项目实战课】基于Pytorch的SRGAN图像超分辨实战
  6. python小结_python简单小结
  7. android 美颜录像,Android 关于美颜/滤镜 利用PBO从OpenGL录制视频
  8. vue.js 入门,简介
  9. 黑夜主权个人团队html源码 简单修改即可使用
  10. 买房子还是不买房子,这是一个问题
  11. Elasticsearch aggregations API
  12. linux系统oracle监听启动,linux下启动与关闭oracle监听与实例
  13. mongodb 的安装使用步骤
  14. 光干涉波谷,有可能低于绝对零度
  15. include包含文件查找的顺序 .
  16. graphormer 代码阅读
  17. docx4j书签的妙用
  18. Xcelsius 访问webservice 需要配置
  19. c 语言中strcat的用法,strcat 在 C 语言中是什么意思?
  20. 航天环宇提交招股书上会稿:计划募资6亿元,控股股东为李完小

热门文章

  1. 绿色版SecureCRT启动崩溃,遇到一个致命的错误且必须关闭
  2. Qt开发经验小技巧196-200
  3. 在兼容系统上升级DELL SATA硬盘的固件
  4. 衣米魔兽世界怀旧服:相关网友和测试玩家的提问,王乾亨以及衣米魔兽官方的解释与回答内容精选
  5. 密码编码学与网络安全笔记(第7版)
  6. 【教程】Tomcat 的catalina.out 日志按照自定义日期格式进行切割
  7. 免费UNITY资源的超级列表
  8. intel hd3000 本 在 64位 ubuntu10.04 下 液晶亮度无法调节 的解决之道(亲测)
  9. 用php表示掷骰子两次比大小,php实现的中秋博饼游戏之掷骰子并输出结果功能详解...
  10. linux xp双系统引导修复工具,XP和Linux双系统启动菜单的修复