NodeJS的打印,在npm内,可以很容易找到ipp
这是一种目前比较流行的网络打印协议,详细可以看维基百科
https://zh.wikipedia.org/zh-cn/IPP
关于npm内的ipp,具体的代码在Git上
https://github.com/williamwicks/ipp
GIT上描述了大概的使用方法和思路,主要做简要翻译
安装
$ npm install ipp
Printer(url [,options])
这是创建一个打印机的对象,URL,就是指的网络打印机的地址了,后面的options就是具体配置的参数
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上有源码,就基本什么都不是问题了
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com