Node.js:如何将打印作业添加到打印机
我正在开发一个使用node.js的web应用程序,我有一个场景来打印位于本地的一些pdf文件。Node.js:如何将打印作业添加到打印机
例:
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中创建,但在我来说,我要打印的现有的PDF文件。
任何建议???
如果我理解正确,你想打印本地PDF文件,并已经打印作品?
Node.js有可用于检索PDF文件的fs api。 http://nodejs.org/api/fs.html
https://npmjs.org/package/ipp对我来说,似乎并不需要在操作中将PDFkit对象用作data -property。您可以使用您可以使用fs读取的数据。
var fs = require('fs');
fs.readFile('filename.pdf', function(err, data) {
if (err)
throw err;
var printer = ipp.Printer("http://YOUR.PRINTER.SERVER.HOSTNAME:631/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){
console.log(res);
});
});
res显示未定义。 – 2013-04-24 10:48:23
“err”是什么意思?顺便说一句,只是切割和粘贴示例代码显然不起作用,除非您的打印机位于名为'NPI977E4E.local'的服务器上。 – robertklep 2013-04-24 10:52:18
{[错误:getaddrinfo ENOENT]代码:'ENOTFOUND',errno:'ENOTFOUND',系统调用:'getaddrinfo'} – 2013-04-24 10:57:08
打印上面的代码 – 2013-04-24 10:47:00
尽量不工作,让您的地址和网络配置第一份工作,并尝试只是打印,在网上您的示例中创建的PDF。 小步骤。 – 2013-04-24 10:59:33