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上有源码,就基本什么都不是问题了
分享到:
相关推荐
基本情况 在一个项目开发过程中,遇到了小票自动打印的业务需求,原本计划使用NodeJS构建打印服务,调用本地电脑打印机进行数据打印,最后可参考资料偏少,由于项目紧急且对NodeJS的熟悉程度目前也还不够,所以转而...
Nodejs与MQTT协议的应用.pptx
Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具。 本资源代码配合博客使用:https://blog.csdn.net/qq_25479327/article/details/81148772 NodeJs使用mongoose操作mongodb
jZebra 使用浏览器打印。 先决条件:- 1. Backend Web Server apace/tomacat/Node etc.*This demo uses Nodejs server.2. Java greater than 1.5v.Get the java versions using this command from cmd:- java -...
nodejs使用serialport简单DEMO
NodeJS是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程。这个"NodeJS学习笔记和代码"的压缩包显然包含了帮助初学者掌握NodeJS基础知识和实践技能的所有必要资料。 ...
用nodejs语言、http协议、mysql做数据库写的web服务器,这个是学习的时候自己跟着老师做的,数据库表在F:\workspace_Webstorm\segment\models\ConnPool.js里面,可以直接复制黏贴建表。
nodejs使用ES6中的import进行引入模块,首先对文件的后缀进行更改为.mjs,其次需要在配置文件目录中添加"type": "module",再启动node服务的时候会发生改变 需要添加--experimental-modules如(nodemon --experimental...
一个NodeJS和redis做的基于http协议使用的队列 做了点小修改 支持多个队列和post提交 原github地址:https: github com lnmp nodemq 使用方法: 在安装好redis和nodejs后 配置config js 执行: $ node index js ...
nodejs初级教程
在很多场景,我们需要校验下cookie有效性或者使用cookie登录网站看下上面的发包情况,这时候就需要 使用cookie登录网站。这个脚本就可以提供这个功能。 nodejs 使用cookie登录网站
1.先装一个nodeJs的模块,叫nodejs-websocket . 2.直接在nodeJs命令行中敲入:npm install nodejs-websocket回车就可以安装好了. 3.开始建立服务器了,因为有了nodejs-websocket模块,所以很多工作都不用我们自己做.
NodeJS是建立在Chrome V8引擎上的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程。NodeJS的特点包括事件驱动、非阻塞I/O模型,使得它在处理高并发、实时通信场景下表现优秀。在这个GB28181管理...
完整的使用nodejs编写的httpproxy,代理速度非常快,代码简洁明了但不简单
nodejs使用ES6封装一个对数据库的增删改查操作,使用模块化开发。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...
node使用简介
nodejs14.9.0
NodeJS 的优点是可以让 JS 代码在服务器端中执行,可以使用所有的 JS 内建对象,如 String、Number、Boolean、Math、Date、RegExp、Function、Object、Array 等。另外,console、setTimeout() 和 setInterval() 也...
NodeJS是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript进行服务器端编程,打破了JavaScript只能在浏览器中运行的传统。本指南将深入探讨NodeJS的核心概念、开发工具、模块系统、网络编程...
这是个最新的0.4.3版的nodejs window下编译好的包,只要解压到指定位置(建议不要在含有中文的目录中),然后在系统path中加入本包所在根目录,即可使用nodejs编程。跳过了很多繁琐的编译步骤,使得windows下体验...