分享

NodeJS使用ipp协议打印 js直接打印

 昵称597197 2016-06-04

NodeJS的打印,在npm内,可以很容易找到ipp 

这是一种目前比较流行的网络打印协议,详细可以看维基百科 

https://zh./zh-cn/IPP 

关于npm内的ipp,具体的代码在Git上 

https://github.com/williamwicks/ipp 

GIT上描述了大概的使用方法和思路,主要做简要翻译 

安装 

$ npm install ipp 

Printer(url [,options]) 

这是创建一个打印机的对象,URL,就是指的网络打印机的地址了,后面的options就是具体配置的参数 

Javascript代码  

var ipp = require('ipp');  

var PDFDocument = require('pdfkit');  

//make a PDF document  

var doc = new PDFDocument({margin:0});  

doc.text(".", 0, 780);  

doc.output(function(pdf){  

var printer = ipp.Printer("http://NPI977E4E.local.:631/ipp/printer");  

var msg = 

"operation-attributes-tag": 

"requesting-user-name": "William",  

"job-name": "My Test Job",  

"document-format": "application/pdf"  

data: pdf  

printer.execute("Print-Job", msg, function(err, res)

console.log(res);  

上边这段代码简单释意了创建一个PDF文档,并且执行打印的任务 

options的参数,详情可以参照下面连接中的例子,基本把所有的参数列举全了 

https://github.com/williamwicks/ipp/blob/master/tests/parser-test.js 

printer.execute(operation, message, callback) 

也就是通过打印机对象,对该打印机执行操作, 

第一个参数就是操作的类型,可在下边的地址进行查看详细 

https://github.com/williamwicks/ipp/blob/master/lib/enums.js#L52 

第二个参数是对应的消息对象,也就是具体执行操作时用到的数据,在上边的地址可以看到更多 

https://github.com/williamwicks/ipp/blob/master/tests/parser-test.js 

第三个参数就是发起请求后的回调函数,可以返回一些执行的结果和状态 

最开始很不明白 

ipp.parse(buffer) 

是用来将一个二进制的对象转换为IPP用的message,也就是上边的function的第二个参数 

ipp.serialize(msg) 

则相反,是讲一个message,转换为二进制的对象,实际用途就是下边这个方法 

ipp.request(url, data, callback) 

第一个参数是远程的打印机路径 

第二个参数是序列化成二进制流的对象 

第三个则是回调函数 

总的来说,看代码中的例子很乱套,乱七八糟的参数一大堆,但是拆开看就很简单了,另外Git上有源码,就基本什么都不是问题了

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多