我正在开发一个nodejs Express Web服务。我需要直接在网络打印机(支持IPP,刚刚检查)上进行打印。我确实遵循了
https://github.com/williamkapke/ipp
Cannot print with node js ipp module
How to pipe a stream using pdfkit with node js
我可以查询打印机,获取打印机详细信息并打印原始文本文件。打印用pdfKit创建的pdf时出现问题。 如果我使用以下程序:
[...]
doc.on('end', function () {
var printer = ipp.Printer("ipp://EPSON3D096F.local.:631/ipp/print");
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.log("Printed: "+res.statusCode);
});
});
[...]
打印机将打印原始PDF内容,例如
%PDF-1.3%����5 0 obj << / Type / Page / Parent 1 0 R / MediaBox [0 0 350 200] /目录3 0 R /资源4 0 R
endobj 4 0 obj << / ProcSet [/ PDF / Text / ImageB / ImageC / ImageI] / Font << / F2 6 0 R
endobj 7 0 obj << /生产者(PDFKit)/创建者(PDFKit)[...]
您可以猜到整个pdf都很长。
那么,我该如何告诉打印机八比特流包含PDF?
我用EPSOWF7620和Brother820NWB对其进行了测试。
打印机应该解释AFAIK应用程序/八位字节流,并猜测正确的文件格式。
谢谢