Node JS でIPP (およびCUPS ) を使用して、子供のチェックイン システムからラベル (DYMO Labelwriter 450 Turbo's) を印刷しています。qty
子供がいる部屋 (1-3) に応じて、各ラベルの異なる数量 (var ) を印刷する必要があります。現在、ラベルごとに新しい IPP 印刷ジョブを作成していますが、印刷の間に数秒の遅延があります。
遅延をなくすために、ジョブごとに数量を IPP に渡す方法はありますか? それとも、複数の同じ .pdf を 1 つのジョブに渡すのでしょうか?
Vars pdf
(生成されたラベル - .pdf テンプレートを使用)、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)
})
}
});
}
アップデート:
私の問題は、次のジョブの処理を開始する前に、プリンターが「アイドル」に戻るのをCUPSが待機しているため、ジョブ間の遅延が発生しているようです。待機をバイパスするには、オプションをwaitprinter=false
DeviceURI に追加する必要があります。
私はそれを DeviceURI に追加しようとしましたが、役に立ち/etc/cups/printers.conf
ませんでした。Printer
次のようにオブジェクトのURLに追加しようとしました:
var printer = ipp.Printer('http://127.0.0.1:631/printers/DYMO_'+pid+'?waitprinter=false');
プリンターが見つからないエラー。このオプションを IPP で使用するにはどうすればよいですか?
更新 #2:
緊急に、pdfkitを使用して複数ページのラベル PDF をオンザフライで生成し、家族のすべてのラベルを 1 つの印刷ジョブとして送信する回避策を作成しました。