首页 > 其他分享 >菜鸟云打印

菜鸟云打印

时间:2023-06-01 12:11:23浏览次数:68  
标签:function socket 菜鸟 打印 result var data

安装菜鸟打印组件

https://support-cnkuaidi.taobao.com/doc.htm#?docId=108934&docType=1

Html:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="JS_CloudPrint.aspx.cs" Inherits="Demo.JS_CloudPrint" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script src="https://g.alicdn.com/fi/bui/jquery-1.8.1.min.js"></script>
    <script src="CloudPrinter.js" type="text/javascript"></script>
</head>
<body>
    <a href="javascript:;" onclick="doPrint()">打印</a><br /><br />
    <a href="javascript:;" onclick="doPreview()">预览</a><br /><br />
 
</body>
</html>

 

CloudPrinter.js:(jquery-1.8.1.min大家自己下载)

var socket;
var printers;
var defaultPrinter;
var printTaskId;
var taskers;
var waybillPrintStatus;
var waybillNO = '000000000000';
var waybillTemplateURL = 'http://cloudprint.cainiao.com/template/standard/101/123';
var printData;
//自动连接
doConnect()
 
//连接打印机并监听
function doConnect() {
    socket = new WebSocket('ws://127.0.0.1:13528');
    var result = "打印成功";
    var tmptaskID = "0";
 
    // 打开Socket
    socket.onopen = function (event) {
        // 监听消息
        socket.onmessage = function (event) {
            var data = JSON.parse(event.data);
            printers = data.printers;
            defaultPrinter = data.defaultPrinter;
            if (data.cmd == 'notifyPrintResult') {
                var result = "打印成功";
                if (data.taskID != tmptaskID) {
                    for (var i = 0; i < data.printStatus.length; i++) {
                        if (data.printStatus[i].status == 'failed') {
                            result = "打印失败";
                            break;
                        } else if (data.printStatus[i].status == 'canceled') {
                            result = "取消打印任务";
                            break;
                        }
                    }
                    tmptaskID = data.taskID;
                    alert(result);
                }
            } else if (data.cmd == "print") {
                if (data.previewURL)
                    window.open(data.previewURL);
            }
 
        };
        // 监听Socket的关闭
        socket.onclose = function (event) {
            alert("打印机失去联系,请刷新网页重新连接");
        };
    };
    socket.onerror = function (event) {
        alert("打印机出现问题,请联系客服");
    }
}
 
function doPreview() {
    var printData = getPrintData();
    printData.task.preview = true;
    socket.send(JSON.stringify(printData));
 
}
//打印电子面单
function doPrint() {
    var printData = getPrintData();
    socket.send(JSON.stringify(request));
}
 
function getPrintData() {
    waybillNO = "123456789123";
    printTaskId = parseInt(1000 * Math.random());
 
    request = {
        cmd: "print",
        requestID: "12345678901234567890",
        version: "1.0",
        task: {
            taskID: '' + printTaskId,
            preview: false,
            printer: defaultPrinter,
            notifyMode: "allInOne",
            documents: [
                {
                    "documentID": waybillNO,
                    contents: [
                        //电子面单部分
                        {
                            templateURL: waybillTemplateURL,
                            signature: "MD:kw4V6Gtj/7ZasLyotby+HA==",
                            "data": {
                                "recipient": {
                                    "address": {
                                        "city": "济南市",
                                        "detail": "解放东路100号",
                                        "district": "历下区",
                                        "province": "山东省"
                                    },
                                    "mobile": "13888888888",
                                    "name": "张三",
                                    "phone": "13888888888"
                                },
                                "routingInfo": {
                                    "consolidation": {
                                        "name": "济南",
                                        "code": "jinan"
                                    },
                                    "origin": {
                                        "code": "STO"
                                    },
                                    "sortation": {
                                        "name": "济南"
                                    },
                                    "routeCode": "380D-56-04"
                                },
                                "sender": {
                                    "address": {
                                        "city": "东营市",
                                        "detail": "广兴路300号",
                                        "district": "垦利县",
                                        "province": "山东省"
                                    },
                                    "mobile": "13412341234",
                                    "name": "仓库",
                                    "phone": "13412341234"
                                },
                                "waybillCode": "773224859224902"
                            }
                            //电子面单数据
                        }
                    ]
                }
            ]
        }
    };
    return request;
}

 

标签:function,socket,菜鸟,打印,result,var,data
From: https://www.cnblogs.com/hanjun0612/p/17448573.html

相关文章

  • 利用JSP交互式打印表格
    问题:在客户端输入要打印表格的行数rows和列数cols,然后经过服务端处理打印rows*cols的表格,打印数据为i*j。html部分:文件名:input.html<html><head><title>Hello</title></head><body><formaction="input.jsp"method="post"><tablebord......
  • 5楼打印机驱动下载
    5楼共享打印机驱动安装(电脑管家误认为病毒删除,需要退出电脑管家)下载地址:https://wwbs.lanzouj.com/iRi4q0xtnupg(蓝奏云)  打印机名称为:震旦新打印机 ......
  • 4楼共享打印机驱动安装
    4楼共享打印机驱动安装(电脑管家误认为病毒删除,需要退出电脑管家)下载地址:https://wwbs.lanzouj.com/it1KI0xtnxkj(蓝奏云)  打印机名称为:震旦新打印机 ......
  • 数据库 打印
    DDL:CREATETABLECOMPANY(  IDINTPRIMARYKEY  NOTNULL,  NAME     TEXT  NOTNULL,  AGE      INT  NOTNULL,  ADDRESS    CHAR(50),  SALARY    REAL);CREATETABLEIFNOTEXISTSEmplo......
  • 新打印的内容比\r删掉的上次的内容短时上次删除的内容残留咋回事?(已解决)
     原因:作者太菜,理解错了\r的作用,\r的功能不是删除而仅仅是将光标移到行首解决方法:将printf("\r");改为printf("\r     \r");......
  • 打印树形结构(可视化二叉树)
    平时开发时,偶尔会操作二叉树,而查看二叉树的结构,是一种比较费时的事情,我们可以把它按照本身的结构打印出来,从而方便查看。例如Nodea=newNode(110);Nodeb=newNode(105);Nodec=newNode(115);Noded=newNode(102);Node......
  • 在线打印模板设计工具 - XMReport
    关于XMReportXMReport是一款在线打印模板设计工具,支持在浏览器中进行打印模板设计,预览等,无需安装本地插件。并提供Java后端生成引擎,JavaScript生成引擎。同时XMReport是一个很好的JasperReport/ActiveReport,水晶报表等产品替代。先简单你介绍一下XMReport的特性吧:国内首款基于......
  • 数电票是否打印,看这一篇就够了~
     近日,财政部会计司发布了《关于公布电子凭证会计数据标准(试行版)的通知》,为做好电子凭证会计数据标准深化试点工作,研究制定了9类电子凭证的会计数据标准。在通知的《电子凭证会计数据标准——全面数字化的电子发票(试行版)》指南中,明确了数电票报销入账归档的具体处理方式。    ......
  • Apache Flume教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介Flume是Apache下面的一个分布式组件,它提供高效,可靠的收集,整合,传输日志数据的服务。Flume可以理解成一个管道,它连接数据的生产者和消费者,它从数据的生产者(Source)获取数据,保存在自己的缓存(Channel)中,然后通过Sink发送到消费者。它不对数据做保存和复杂的处理(可以做简单......
  • 剑指 Offer 06. 从尾到头打印链表
    剑指Offer06.从尾到头打印链表</br></br>题目:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例:输入:head=[1,3,2]输出:[2,3,1]限制:0<=链表长度<=10000</br></br>思路一:使用reverse函数完成链表的逆序打印。我们通过遍历将链表中的值插......