好的,所以我试图从网页打印(典型的“打印”按钮,但我不希望出现打印对话框)所以我决定使用我已经存在的node.js后端来做任务(主要是因为没有打印对话框,几乎不可能从浏览器打印)。
我找到了节点打印机(https://github.com/tojocky/node-printer)模块,它运行良好,但只有文本。我试图发送RAW数据,但它的作用是打印原始字符。我真正需要的是打印一个徽标,以及一些转弯信息(这是针对客户服务机构)。
此外,必须在本地安装打印机,因此我无法使用IPP。
有没有办法用node.js打印图像,或图像和文本的组合?它可以通过节点打印机完成还是有另一种方式?
答案 0 :(得分:7)
我结束了一个exe来为我做这项工作。我使用child_process调用printhtml,它为我完成所有打印工作。我的代码以这种方式结束:
var exec = require('child_process').exec;
exec('printhtml.exe file=file.html', function(err, data) {
console.log(data.toString());
});
答案 1 :(得分:3)
实际上,您可以使用node-printer
打印图像。这项工作对我来说
var Printer = require('node-printer');
var fs = require('fs');
// Get available printers list
var listPrinter = Printer.list();
// Create a new Pinter from available devices
var printer = new Printer('YOUR PRINTER HERE. GET IT FROM listPrinter');
// Print from a buffer, file path or text
var fileBuffer = fs.readFileSync('PATH TO YOUR IMAGE');
var jobFromBuffer = printer.printBuffer(fileBuffer);
// Listen events from job
jobFromBuffer.once('sent', function() {
jobFromBuffer.on('completed', function() {
console.log('Job ' + jobFromBuffer.identifier + 'has been printed');
jobFromBuffer.removeAllListeners();
});
});
答案 2 :(得分:1)
我使用Node IPP包https://www.npmjs.com/package/ipp取得了成功。
文档上的示例代码(使用另一个节点模块PDFKIT将您的html /文件转换为PDF)不起作用。请参阅我的答案:Cannot print with node js ipp module了解一个有效的例子。