js调用HttpPrinter(web打印插件)

js调用HttpPrinter(web打印插件)

对比了 康虎云报表 lodop  后 选择了 HttpPrinter  (原因: 功能免费 只有源码收费)

js代码如下,base64的部分已经精简:

<!DOCTYPE html>

<html>

<head>

<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>

<script>

$(document).ready(function(){

  //获取打印机列表 begin

  $("#btn_getprintlist").click(function(){

    var ip = $("#ip").val();

    var port = $("#port").val();

if(ip==""||port==""){alert("ip,port不能为空"); return false;}

    //$.post("http://127.0.0.1:12345/getprinterlist",

    $.post("http://"+ip+":"+port+"/getprinterlist",

    {

      //method:"Donald Duck",

      //city:"Duckburg"

    },

    function(data){

data = decodeURIComponent(data);

//alert(data);

if(data==""){

alert("连接HttpPrinter失败");

}else{

//alert(data);

var obj = JSON.parse(data);

//alert(obj.status);

$("#PrinterS").empty();

if(obj.status=="ok"){

alert("获取成功");

//

//$("#PrinterS").append("<option value='"+obj.sites[1].name +"'>"+obj.sites[1].name +"</option>");

for(var o in obj.data){ 

//alert(o); 

//alert(obj.data[o]); 

var printname = obj.data[o].name;

//alert(printname);

$("#PrinterS").append("<option value='"+printname +"'>"+printname +"</option>");

}else{

alert("获取失败:"+obj.data);

}

//console.log(data);

}

    });

  });

  //获取打印机列表 end

  //打印测试报表 begin

  $("#btn_printtest").click(function(){

    var ip = $("#ip").val();

    var port = $("#port").val();

if(ip==""||port==""){alert("ip,port不能为空"); return false;}

    $.post("http://"+ip+":"+port+"/printreport",

    {

  "ReportName": encodeURIComponent("test.grf"),    /*报表文件名 测试报表 */

  "ReportVersion": 1,              /*可选。报表版本, 为空则默认1  如果本地报表的版本过低 将从 ReportUrl 地址进行下载更新*/

  //"ReportUrl": encodeURIComponent("http://localhost:9099/report/test.grf"),                  /*可选。为空 将不更新本地报表 , 如果本地报表不存在可以从该地址自动下载*/

  "ReportUrl": encodeURIComponent("http://111.67.202.157:9099/report/test.grf"),                  /*可选。为空 将不更新本地报表 , 如果本地报表不存在可以从该地址自动下载*/

  "Copies": 1,                    /*可选。打印份数,支持指定打印份数。默认1份,如果为零,不打印,只返回报表生成的pdf,jpg等文件*/

  "PrinterName": encodeURIComponent($("#PrinterS option:selected").text()),      /*可选。指定打印机,为空的话 使用默认打印机, 请在 控制面板 -> 设备和打印机 中查看您的打印机的名称 */

  "PrintOffsetX": 0,                /*可选。打印右偏移,单位厘米。报表的水平方向上的偏移量,向右为正,向左为负。*/

  "PrintOffsetY": 0,                /*可选。打印下偏移,单位厘米。 报表的垂直方向上的偏移量,向下为正,向上为负。*/

  "Preview": 0,                /*可选。是否预览,和主界面设置的效果一样 为空默认不预览,  0:不预览,1:预览(弹出导出的pdf,jpg等文件)。*/

  "token": encodeURIComponent("aa"),      /*可选。只要token值在列表中 方可打印*/

  "Control": encodeURIComponent('['  ///*部件框,可选值:AsStaticBox ,AsMemoBox,AsRichTextBox,AsPictureBox (base64格式),AsBarcode*/

+'{"type": "AsStaticBox", "name": "姓名","value": "高文杰","required": false},'

+'{"type": "AsStaticBox", "name": "性别","value": "男","required": false},'

+'{"type": "AsStaticBox", "name": "电话","value": "13165191728","required": false},'

+'{"type": "AsBarcode", "name": "二维码","value": "5520002701774727","required": false},'

+'{"type": "AsPictureBox", "name": "图片","value": "/9j/4AAQSkZJRgABgAooooA/9k=","required": false},'  //base64格式

+']'),

  "Parameter": encodeURIComponent('['  ///*参数,type 默认为空即可,已经在报表端设置了 备用字段 

+'{"type": "", "name": "单号","value": "5520002701774727","required": false},'

+'{"type": "", "name": "日期","value": "2019-09-09 12:21:12","required": false},'

+'{"type": "", "name": "year","value": "2018","required": false},'

+']'),

  "Field": encodeURIComponent('['  ///*字段, type ftBlob (base64格式) ,ftString ftInteger ftBoolean, ftFloat, ftCurrency,ftDateTime,  size (ftString 设置为实际长度,其他的设置为0,例如 ftInteger ftBlob 等设置为0 )

+'{"type": "ftString", "name": "快递单号","size": 255,"required": true},'

+'{"type": "ftString", "name": "发件人","size": 255,"required": false},'

+'{"type": "ftString", "name": "发件人电话","size": 255,"required": false},'

+'{"type": "ftBlob", "name": "图像","size": 0,"required": false},'

+']'),

  "Data": encodeURIComponent('['  ///*数据行 

+'{"快递单号": "1234567890", "发件人": "山东易桥智能科技有限公司","发件人电话": "13165191728","图像": "/9j/4AAQSkZJRgABAQEAYABgAAAKKKKACiiigAooooA/9k="},'

+'{"快递单号": "1234567890", "发件人": "山东易桥智能科技有限公司","发件人电话": "13165191728","图像": "/9j/4AAQSkZJRgABAQEAYABgAAAKKKKACiiigAooooA/9k="},'

+'{"快递单号": "1234567890", "发件人": "山东易桥智能科技有限公司","发件人电话": "13165191728","图像": "/9j/4AAQSkZJRgABAQEAYABgAAAKKKKACiiigAooooA/9k="},'

+'{"快递单号": "1234567890", "发件人": "山东易桥智能科技有限公司","发件人电话": "13165191728","图像": "/9j/4AAQSkZJRgABAQEAYABgAAAKKKKACiiigAooooA/9k="},'

+'{"快递单号": "1234567890", "发件人": "山东易桥智能科技有限公司","发件人电话": "13165191728","图像": "/9j/4AAQSkZJRgABAQEAYABgAAAKKKKACiiigAooooA/9k="},'

+'{"快递单号": "1234567890", "发件人": "山东易桥智能科技有限公司","发件人电话": "13165191728","图像": "/9j/4AAQSkZJRgABAQEAYABgAAAKKKKACiiigAooooA/9k="},'

+']'),

    },

    function(data){

data = decodeURIComponent(data);

//alert(data);

if(data==""){

alert("连接HttpPrinter失败");

}else{

//alert(data);

var obj = JSON.parse(data);

//alert(obj.status);

if(obj.status=="ok"){

alert("打印成功");

//

}else{

alert("打印失败:"+obj.data);

}

//console.log(data);

}

    });

  });

  //打印测试报表 end

  //打印条形码 begin

  $("#btn_barcode").click(function(){

    var ip = $("#ip").val();

    var port = $("#port").val();

if(ip==""||port==""){alert("ip,port不能为空"); return false;}

    //$.post("http://127.0.0.1:12345/getprinterlist",

    $.post("http://"+ip+":"+port+"/printreport",

    {

  "ReportName": encodeURIComponent("barcode.grf"),    /*报表文件名 条形码 */

  "ReportVersion": 1,              /*可选。报表版本, 为空则默认1  如果本地报表的版本过低 将从 ReportUrl 地址进行下载更新*/

  "ReportUrl": encodeURIComponent("http://111.67.202.157:9099/report/barcode.grf"),                  /*可选。为空 将不更新本地报表 , 如果本地报表不存在可以从该地址自动下载*/

  "Copies": 1,                  /*可选。打印份数,支持指定打印份数。默认1份,如果为零,不打印,只返回报表生成的pdf,jpg等文件*/

  "PrinterName": encodeURIComponent($("#PrinterS option:selected").text()),      /*可选。指定打印机,为空的话 使用默认打印机, 请在 控制面板 -> 设备和打印机 中查看您的打印机的名称 */

  "PrintOffsetX": 0,                /*可选。打印右偏移,单位厘米。报表的水平方向上的偏移量,向右为正,向左为负。*/

  "PrintOffsetY": 0,                /*可选。打印下偏移,单位厘米。 报表的垂直方向上的偏移量,向下为正,向上为负。*/

  "token": encodeURIComponent("aa"),      /*可选。只要token值在列表中 方可打印*/

  "Field": encodeURIComponent('['  ///*字段, type ftBlob (base64格式) ,ftString ftInteger ftBoolean, ftFloat, ftCurrency,ftDateTime,  size (ftString 设置为实际长度,其他的设置为0,例如 ftInteger ftBlob 等设置为0 )

+'{"type": "ftString", "name": "name","size": 255,"required": true},'

+'{"type": "ftString", "name": "no","size": 255,"required": false},'

+']'),

  "Data": encodeURIComponent('['  ///*数据行 

+'{"name": "刘一", "no": "001"},'

+'{"name": "陈二","no": "002"},'

+'{"name": "张三","no": "003"},'

+'{"name": "李四","no": "004"},'

+'{"name": "王五","no": "005"},'

+'{"name": "赵六","no": "006"},'

+'{"name": "孙七","no": "007"},'

+'{"name": "周八","no": "008"},'

+'{"name": "吴九","no": "009"},'

+'{"name": "郑十","no": "010"},'

+']'),

    },

    function(data){

data = decodeURIComponent(data);

//alert(data);

if(data==""){

alert("连接HttpPrinter失败");

}else{

//alert(data);

var obj = JSON.parse(data);

//alert(obj.status);

if(obj.status=="ok"){

alert("打印成功");

//

}else{

alert("打印失败:"+obj.data);

}

//console.log(data);

}

    });

  });

  //打印条形码 end

  //打印Pos小票 begin

  $("#btn_pos").click(function(){

    var ip = $("#ip").val();

    var port = $("#port").val();

if(ip==""||port==""){alert("ip,port不能为空"); return false;}

    $.post("http://"+ip+":"+port+"/printreport",

    {

  "ReportName": encodeURIComponent("PosTicket.grf"),    /*报表文件名 POS小票 */

  "ReportVersion": 1,              /*可选。报表版本, 为空则默认1  如果本地报表的版本过低 将从 ReportUrl 地址进行下载更新*/

  "ReportUrl": encodeURIComponent("http://111.67.202.157:9099/report/PosTicket.grf"),                  /*可选。为空 将不更新本地报表 , 如果本地报表不存在可以从该地址自动下载*/

  "Copies": 1,                  /*可选。打印份数,支持指定打印份数。默认1份,如果为零,不打印,只返回报表生成的pdf,jpg等文件*/

  "PrinterName": encodeURIComponent($("#PrinterS option:selected").text()),      /*可选。指定打印机,为空的话 使用默认打印机, 请在 控制面板 -> 设备和打印机 中查看您的打印机的名称 */

  "PrintOffsetX": 0,                /*可选。打印右偏移,单位厘米。报表的水平方向上的偏移量,向右为正,向左为负。*/

  "PrintOffsetY": 0,                /*可选。打印下偏移,单位厘米。 报表的垂直方向上的偏移量,向下为正,向上为负。*/

  "token": encodeURIComponent("aa"),      /*可选。只要token值在列表中 方可打印*/

  "Parameter": encodeURIComponent('['  ///*参数,type 默认为空即可,已经在报表端设置了 备用字段 

+'{"type": "", "name": "title","value": "易桥餐厅消费小票","required": false},'

+'{"type": "", "name": "SubTitle","value": "官方网站:http://www.yiqiao.net.cn","required": false},'

+'{"type": "", "name": "deskname","value": "桌号:1001","required": false},'

+'{"type": "", "name": "djh","value": "单据号:20191101000001","required": false},'

+'{"type": "", "name": "czy","value": "操作员:高文杰","required": false},'

+'{"type": "", "name": "starttime","value": "消费日期:2019-11-01","required": false},'

+'{"type": "", "name": "tf","value": "","required": false},'

+'{"type": "", "name": "ysje","value": "100.00","required": false},'

+'{"type": "", "name": "yhje","value": "0.00","required": false},'

+'{"type": "", "name": "sjje","value": "100.00","required": false},'

+'{"type": "", "name": "kahao","value": "890001","required": false},'

+']'),  

  "Field": encodeURIComponent('['  ///*字段, 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},'

+']'),

  "Data": encodeURIComponent('['  ///*数据行 

+'{"shangpname": "青椒肉丝", "shuliang": "1", "je": "14.50"},'

+'{"shangpname": "清汤丸子", "shuliang": "1", "je": "20.90"},'

+'{"shangpname": "土豆丝", "shuliang": "1", "je": "7.00"},'

+'{"shangpname": "凉拌牛肉", "shuliang": "1", "je": "50.00"},'

+'{"shangpname": "红烧茄子", "shuliang": "1", "je": "30.00"},'

+'{"shangpname": "四喜丸子", "shuliang": "1", "je": "23.00"},'

+'{"shangpname": "溜肥肠", "shuliang": "1", "je": "30.00"},'

+'{"shangpname": "炒年糕", "shuliang": "1", "je": "33.00"},'

+'{"shangpname": "烧鹅掌", "shuliang": "1", "je": "34.00"},'

+'{"shangpname": "蚂蚁上树", "shuliang": "1", "je": "65.00"},'

+']'),

    },

    function(data){

data = decodeURIComponent(data);

//alert(data);

if(data==""){

alert("连接HttpPrinter失败");

}else{

//alert(data);

var obj = JSON.parse(data);

//alert(obj.status);

if(obj.status=="ok"){

alert("打印成功");

//

}else{

alert("打印失败:"+obj.data);

}

//console.log(data);

}

    });

  });

  //打印Pos小票 end

  //打印客户基本信息 begin

  $("#btn_customer").click(function(){

    var ip = $("#ip").val();

    var port = $("#port").val();

if(ip==""||port==""){alert("ip,port不能为空"); return false;}

    $.post("http://"+ip+":"+port+"/printreport",

    {

  "ReportName": encodeURIComponent("customer.grf"),    /*报表文件名 客户基本信息 */

  "ReportVersion": 1,              /*可选。报表版本, 为空则默认1  如果本地报表的版本过低 将从 ReportUrl 地址进行下载更新*/

  "ReportUrl": encodeURIComponent("http://111.67.202.157:9099/report/customer.grf"),                  /*可选。为空 将不更新本地报表 , 如果本地报表不存在可以从该地址自动下载*/

  "Copies": 1,                  /*可选。打印份数,支持指定打印份数。默认1份,如果为零,不打印,只返回报表生成的pdf,jpg等文件*/

  "PrinterName": encodeURIComponent($("#PrinterS option:selected").text()),      /*可选。指定打印机,为空的话 使用默认打印机, 请在 控制面板 -> 设备和打印机 中查看您的打印机的名称 */

  "PrintOffsetX": 0,                /*可选。打印右偏移,单位厘米。报表的水平方向上的偏移量,向右为正,向左为负。*/

  "PrintOffsetY": 0,                /*可选。打印下偏移,单位厘米。 报表的垂直方向上的偏移量,向下为正,向上为负。*/

  "token": encodeURIComponent("aa"),      /*可选。只要token值在列表中 方可打印*/

  "Field": encodeURIComponent('['  ///*字段, type ftBlob (base64格式) ,ftString ftInteger ftBoolean, ftFloat, ftCurrency,ftDateTime,  size (ftString 设置为实际长度,其他的设置为0,例如 ftInteger ftBlob 等设置为0 )

+'{"type": "ftString", "name": "CustomerID","size": 255,"required": true},'

+'{"type": "ftString", "name": "CompanyName","size": 255,"required": false},'

+'{"type": "ftString", "name": "ContactName","size": 255,"required": false},'

+'{"type": "ftString", "name": "ContactTitle","size": 255,"required": false},'

+'{"type": "ftString", "name": "Address","size": 255,"required": false},'

+'{"type": "ftString", "name": "City","size": 255,"required": false},'

+'{"type": "ftString", "name": "Region","size": 255,"required": false},'

+'{"type": "ftString", "name": "PostalCode","size": 255,"required": false},'

+'{"type": "ftString", "name": "Country","size": 255,"required": false},'

+'{"type": "ftString", "name": "Phone","size": 255,"required": false},'

+'{"type": "ftString", "name": "Fax","size": 255,"required": false},'

+']'),

  "Data": encodeURIComponent('['  ///*数据行 

+'{"CustomerID": "SDYQKJ", "CompanyName": "易桥科技", "ContactName": "高文杰", "ContactTitle": "经理", "Address": "商动力大厦", "City": "济宁", "Region": "华东", "PostalCode": "272100", "Country": "中国", "Phone": "13165191728", "Fax": "0537-2345660"},'

+'{"CustomerID": "CHOPS", "CompanyName": "浩天旅行社", "ContactName": "方先生", "ContactTitle": "经理", "Address": "白广路 314 号", "City": "天津", "Region": "华北", "PostalCode": "234254", "Country": "中国", "Phone": "(030) 30076545", "Fax": ""},'

+'{"CustomerID": "SEVES", "CompanyName": "艾德高科技", "ContactName": "谢小姐", "ContactTitle": "经理", "Address": "起义路 231 号", "City": "天津", "Region": "华北", "PostalCode": "013072", "Country": "中国", "Phone": "(030) 55657717", "Fax": ""},'

+']'),

    },

    function(data){

data = decodeURIComponent(data);

//alert(data);

if(data==""){

alert("连接HttpPrinter失败");

}else{

//alert(data);

var obj = JSON.parse(data);

//alert(obj.status);

if(obj.status=="ok"){

alert("打印成功");

//

}else{

alert("打印失败:"+obj.data);

}

//console.log(data);

}

    });

  });

  //打印客户基本信息 end

  //打印支票 begin

  $("#btn_cheque").click(function(){

    var ip = $("#ip").val();

    var port = $("#port").val();

if(ip==""||port==""){alert("ip,port不能为空"); return false;}

    $.post("http://"+ip+":"+port+"/printreport",

    {

  "ReportName": encodeURIComponent("bankcheque.grf"),    /*报表文件名 支票套打 */

  "ReportVersion": 1,              /*可选。报表版本, 为空则默认1  如果本地报表的版本过低 将从 ReportUrl 地址进行下载更新*/

  "ReportUrl": encodeURIComponent("http://111.67.202.157:9099/report/bankcheque.grf"),                  /*可选。为空 将不更新本地报表 , 如果本地报表不存在可以从该地址自动下载*/

  "Copies": 1,                  /*可选。打印份数,支持指定打印份数。默认1份,如果为零,不打印,只返回报表生成的pdf,jpg等文件*/

  "PrinterName": encodeURIComponent($("#PrinterS option:selected").text()),      /*可选。指定打印机,为空的话 使用默认打印机, 请在 控制面板 -> 设备和打印机 中查看您的打印机的名称 */

  "PrintOffsetX": 0,                /*可选。打印右偏移,单位厘米。报表的水平方向上的偏移量,向右为正,向左为负。*/

  "PrintOffsetY": 0,                /*可选。打印下偏移,单位厘米。 报表的垂直方向上的偏移量,向下为正,向上为负。*/

  "token": encodeURIComponent("aa"),      /*可选。只要token值在列表中 方可打印*/

  "Parameter": encodeURIComponent('['  ///*参数,type 默认为空即可,已经在报表端设置了 备用字段 

+'{"type": "", "name": "PayTo","value": "山东易桥智能科技有限公司","required": false},'  //收款人

+'{"type": "", "name": "Year","value": "2019","required": false},'//年

+'{"type": "", "name": "Month","value": "8","required": false},'//月

+'{"type": "", "name": "Day","value": "19:20191101000001","required": false},'//日

+'{"type": "", "name": "Amount","value": "50000","required": false},'//金额

+'{"type": "", "name": "Usage","value": "HttpPrinter技术服务费","required": false},'//用途

+'{"type": "", "name": "Remark","value": "费用缴纳一次,永久技术支持","required": false},'//备注

+']'),  

    },

    function(data){

data = decodeURIComponent(data);

//alert(data);

if(data==""){

alert("连接HttpPrinter失败");

}else{

//alert(data);

var obj = JSON.parse(data);

//alert(obj.status);

if(obj.status=="ok"){

alert("打印成功");

//

}else{

alert("打印失败:"+obj.data);

}

//console.log(data);

}

    });

  });

  //打印支票 end

  //打印快递单 begin

  $("#btn_ExpressBill").click(function(){

    var ip = $("#ip").val();

    var port = $("#port").val();

if(ip==""||port==""){alert("ip,port不能为空"); return false;}

    $.post("http://"+ip+":"+port+"/printreport",

    {

  "ReportName": encodeURIComponent("ExpressBill.grf"),    /*报表文件名 快递单套打 */

  "ReportVersion": 1,              /*可选。报表版本, 为空则默认1  如果本地报表的版本过低 将从 ReportUrl 地址进行下载更新*/

  "ReportUrl": encodeURIComponent("http://111.67.202.157:9099/report/ExpressBill.grf"),                  /*可选。为空 将不更新本地报表 , 如果本地报表不存在可以从该地址自动下载*/

  "Copies": 1,                  /*可选。打印份数,支持指定打印份数。默认1份,如果为零,不打印,只返回报表生成的pdf,jpg等文件*/

  "PrinterName": encodeURIComponent($("#PrinterS option:selected").text()),      /*可选。指定打印机,为空的话 使用默认打印机, 请在 控制面板 -> 设备和打印机 中查看您的打印机的名称 */

  "PrintOffsetX": 0,                /*可选。打印右偏移,单位厘米。报表的水平方向上的偏移量,向右为正,向左为负。*/

  "PrintOffsetY": 0,                /*可选。打印下偏移,单位厘米。 报表的垂直方向上的偏移量,向下为正,向上为负。*/

  "token": encodeURIComponent("aa"),      /*可选。只要token值在列表中 方可打印*/

  "Parameter": encodeURIComponent('['  ///*参数,type 默认为空即可,已经在报表端设置了 备用字段 

+'{"type": "", "name": "EmployeeID","value": "","required": false},' 

+'{"type": "", "name": "LastName","value": "高","required": false},' 

+'{"type": "", "name": "FirstName","value": "文杰","required": false},' 

+'{"type": "", "name": "Title","value": "新浪中国有限公司","required": false},' 

+'{"type": "", "name": "Region","value": "北京","required": false},' 

+'{"type": "", "name": "City","value": "北京","required": false},' 

+'{"type": "", "name": "Country","value": "海淀","required": false},' 

+'{"type": "", "name": "Address","value": "学院路100号","required": false},' 

+'{"type": "", "name": "PostalCode","value": "100100","required": false},' 

+']'),  

    },

    function(data){

data = decodeURIComponent(data);

//alert(data);

if(data==""){

alert("连接HttpPrinter失败");

}else{

//alert(data);

var obj = JSON.parse(data);

//alert(obj.status);

if(obj.status=="ok"){

alert("打印成功");

//

}else{

alert("打印失败:"+obj.data);

}

//console.log(data);

}

    });

  });

  //打印快递单 end  

  //打印员工档案 begin

  $("#btn_employee").click(function(){

    var ip = $("#ip").val();

    var port = $("#port").val();

if(ip==""||port==""){alert("ip,port不能为空"); return false;}

var aBase64String = "/9j/4AAQSkZJRgABAQEACiiigAooooA/9k=";

    $.post("http://"+ip+":"+port+"/printreport",

    {

  "ReportName": encodeURIComponent("employee.grf"),    /*报表文件名 员工档案 */

  "ReportVersion": 1,              /*可选。报表版本, 为空则默认1  如果本地报表的版本过低 将从 ReportUrl 地址进行下载更新*/

  "ReportUrl": encodeURIComponent("http://111.67.202.157:9099/report/employee.grf"),                  /*可选。为空 将不更新本地报表 , 如果本地报表不存在可以从该地址自动下载*/

  "Copies": 1,                  /*可选。打印份数,支持指定打印份数。默认1份,如果为零,不打印,只返回报表生成的pdf,jpg等文件*/

  "PrinterName": encodeURIComponent($("#PrinterS option:selected").text()),      /*可选。指定打印机,为空的话 使用默认打印机, 请在 控制面板 -> 设备和打印机 中查看您的打印机的名称 */

  "PrintOffsetX": 0,                /*可选。打印右偏移,单位厘米。报表的水平方向上的偏移量,向右为正,向左为负。*/

  "PrintOffsetY": 0,                /*可选。打印下偏移,单位厘米。 报表的垂直方向上的偏移量,向下为正,向上为负。*/

  "token": encodeURIComponent("aa"),      /*可选。只要token值在列表中 方可打印*/

  "Field": encodeURIComponent('['  ///*字段, type ftBlob (base64格式) ,ftString ftInteger ftBoolean, ftFloat, ftCurrency,ftDateTime,  size (ftString 设置为实际长度,其他的设置为0,例如 ftInteger ftBlob 等设置为0 )

+'{"type": "ftString", "name": "Name","size": 255,"required": false},'//姓名

+'{"type": "ftString", "name": "tel","size": 255,"required": false},'//电话

+'{"type": "ftDateTime", "name": "BirthDate","size": 0,"required": false},'//出生日期

+'{"type": "ftString", "name": "Address","size": 255,"required": false},'

+'{"type": "ftBlob", "name": "photo2","size": 0,"required": false},'

+']'),

  "Data": encodeURIComponent('['  ///*数据行 

+'{"Name": "高文杰", "tel": "13165191728", "BirthDate": "1988-12-01", "Address": "东满大街12号", '

+'"photo2": "/9j/4AAQSkZJRgABAQEACiiigAooooA/9k="}, '

+'{"Name": "张三", "tel": "13165191728", "BirthDate": "1988-12-01", "Address": "北京市西门大街22号", '

+'"photo2": "/9j/4AAQSkZJRgABAQEACiiigAooooA/9k="}, '

+']'),

    },

    function(data){

data = decodeURIComponent(data);

//alert(data);

if(data==""){

alert("连接HttpPrinter失败");

}else{

//alert(data);

var obj = JSON.parse(data);

//alert(obj.status);

if(obj.status=="ok"){

alert("打印成功");

//

}else{

alert("打印失败:"+obj.data);

}

//console.log(data);

}

    });

  });

  //打印员工档案 end

});

</script>

</head>

<body>

IP: <input type="text" name="ip" id="ip" value="127.0.0.1" /><br>

port: <input type="text" name="port" id="port" value="12345"/><br>

<select name="PrinterS" id="PrinterS"></select>

<button id="btn_getprintlist">获取打印机列表</button><br>

<button id="btn_printtest">打印测试报表</button><br>

<button id="btn_barcode">打印条形码</button><br>

<button id="btn_pos">Pos小票打印</button><br>

<button id="btn_customer">打印客户基本信息</button><br>

<button id="btn_cheque">打印支票</button><br>

<button id="btn_ExpressBill">打印快递单</button><br>

<button id="btn_employee">打印员工档案</button><br>

</body>

</html>

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,783评论 5 472
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,396评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,834评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,036评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,035评论 5 362
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,242评论 1 278
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,727评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,376评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,508评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,415评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,463评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,140评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,734评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,809评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,028评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,521评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,119评论 2 341

推荐阅读更多精彩内容

  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,438评论 0 13
  • 第一章: JS简介 从当初简单的语言,变成了现在能够处理复杂计算和交互,拥有闭包、匿名函数, 甚至元编程等...
    LaBaby_阅读 1,630评论 0 6
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 2,689评论 0 3
  • 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放...
    孤魂草阅读 862评论 0 0
  • =========================================================...
    lavor阅读 3,480评论 0 5