我有一个通过USB端口连接到PC的炸锅。我运行Windows 7。
这是简单的代码:
var ipp=require('ipp')
var fs = require('fs');
fs.readFile('filename.pdf', function(err, data) {
if (err)
throw err;
var printer = ipp.Printer("http://localhost/ipp/printer");
var msg = {
"operation-attributes-tag": {
"requesting-user-name": "William",
"job-name": "My Test Job",
"document-format": "application/pdf"
},
data: data
};
printer.execute("Print-Job", msg, function(err, res){
if(err){
console.log(err);
}
console.log(res);
});
});
我该如何解析我的本地打印机地址以将其写入此处:
var printer = ipp.Printer("http://localhost/ipp/printer");
?
相当老的问题了,但是我已经用这个模块解决了自己的问题。
工作示例:
var ipp = require("ipp");
var PDFDocument = require("pdfkit");
var doc = new PDFDocument;
doc.text("Hello World");
var buffers = [];
doc.on('data', buffers.push.bind(buffers));
doc.on('end', function () {
console.log(Buffer.concat(buffers));
var printer = ipp.Printer("http://192.168.1.50:631", {version:'1.0'});
var file = {
"operation-attributes-tag":{
"requesting-user-name": "User",
"job-name": "Print Job",
"document-format": "application/octet-stream"
},
data: Buffer.concat(buffers)
};
printer.execute("Print-Job", file, function (err, res) {
console.dir(res);
});
});
doc.end();
尽管IPP github页面上有当前示例,但较新版本的IPP仍要求您将数据格式化为流。
您必须使用以下设置:打印机URL,version参数(取决于打印机的1.0或2.0)以及重要的是document-format。
如果建立连接,运行以下命令将注销打印机的详细信息,如果继续遇到问题,可以提供进一步的信息:
var ipp = require("ipp");
var printer = ipp.Printer('http://192.168.1.50:631', { //your printer's IP with the IPP port (631) appended
version: '1.0' //try 1.0 or 2.0
});
printer.execute('Get-Printer-Attributes', null, function (err, res) {
console.log(res);
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句