Javascript 对节点JS使用IPP时的打印作业延迟
我正在使用(和)Node JS从我们的孩子登记系统打印标签(DYMO-Labelwriter 450-Turbo)。根据孩子所在的房间(1-3),我需要打印每个标签的不同数量(varJavascript 对节点JS使用IPP时的打印作业延迟,javascript,node.js,pdf,printing,Javascript,Node.js,Pdf,Printing,我正在使用(和)Node JS从我们的孩子登记系统打印标签(DYMO-Labelwriter 450-Turbo)。根据孩子所在的房间(1-3),我需要打印每个标签的不同数量(varqty)。目前,我正在为每个标签创建一个新的IPP打印作业-但打印之间有几秒钟的延迟 是否有办法将每项作业的数量传递给IPP,以消除延迟?或者将多个相同的.pdf文件传递到一个作业中 Varspdf(生成的标签-使用a)、qty(需要打印的标签数量)和pid(要打印的打印机的打印机ID)被传递到以下代码位: func
qty
)。目前,我正在为每个标签创建一个新的IPP打印作业-但打印之间有几秒钟的延迟
是否有办法将每项作业的数量传递给IPP,以消除延迟?或者将多个相同的.pdf文件传递到一个作业中
Varspdf
(生成的标签-使用a)、qty
(需要打印的标签数量)和pid
(要打印的打印机的打印机ID)被传递到以下代码位:
function print(qty, pid, first, last, gender, room, notes, notesr, timestamp, age, grade, code) {
fs.readFile('label.pdf', 'utf-8', function (err, pdf) {
pdf = pdf.toString();
pdf = pdf.replace('<FIRST>', first).replace('<LAST>', last).replace('<GENDER>', gender).replace('<ROOM>', room).replace('<NOTES>', notes).replace('<NOTESON>', notesr).replace('<TIMESTAMP>', timestamp).replace('<AGE>', age).replace('<GRADE>', grade).replace('<CODE>', code);
if (err)
throw err;
var printer = ipp.Printer('http://127.0.0.1:631/printers/DYMO_'+pid);
var file = {
'operation-attributes-tag':{
'requesting-user-name': 'Test User',
'job-name': 'My Test Job',
'document-format': 'application/pdf'
},
data: new Buffer(pdf, 'binary')
};
for (var i = 0; i < qty; i++) {
printer.execute('Print-Job', file, function (err, res) {
console.log('Printed: '+res.statusCode)
})
}
});
}
无法找到该打印机的错误。如何在IPP中使用此选项
更新#2:
出于紧急需要,我创建了一个解决方案,用于动态生成多页标签pdf,并将该系列的所有标签作为单个打印作业发送。您尝试将其添加到cups主机上
/etc/cups/printers.conf
中的DeviceURI中吗
如果您只是在CUPS运行时编辑该文件,它将不起作用。通常,printers.conf
不用于直接编辑。它在第一行中确实说明了这一点(尖叫着“不要在CUPSD运行时编辑此文件”)
1.
建议使用CUPS服务器上的lpadmin
命令永久更改打印机配置:
lpadmin -h cupsserver -P printername -E -v ipp://11.2.13.14:631/waitprinter=false
CUPS服务器随后会告诉CUPS客户端,他们可以通过
http://cupsserver:631/printername
(如果确实需要直接编辑printers.conf,则必须先停止CUPS守护进程,进行编辑,然后重新启动cupsd。)
2.
要临时更改打印机配置(仅针对下一个作业),可以在发送作业时使用lp
命令传递该选项:
lp -d printername -o waitprinter=false myjob.pdf
转化为您的问题空间,此解决方案意味着:
var printer=ipp.printer…
语句中的打印机名称'waitprinter':'false'
语句顺便说一下,标签数量不再是一个问题。我决定创建3个pdf模板“label1.pdf”、“label2.pdf”、“label3.pdf”-这样可以固定相同标签之间的速度,因为我可以通过单个作业发送它们。我现在关心的是更新部分:对DeviceURI使用选项,
waitprinter=false
。谢谢是否可以在.conf文件中全局配置waitprinter
选项?在URI中添加waitprinter=false
后,您的/etc/cups/printers.conf
配置是什么样子的?
lp -d printername -o waitprinter=false myjob.pdf