Javascript 是否可以使用node.js打印图像?

Javascript 是否可以使用node.js打印图像?,javascript,node.js,printing,Javascript,Node.js,Printing,好的,所以我尝试从网页打印(典型的“打印”按钮,但我不想显示打印对话框),所以我决定使用已经存在的node.js后端来完成这项任务(主要是因为没有打印对话框,从浏览器打印几乎是不可能的) 我找到了node printer()模块,它工作得很好,但只适用于文本。我试图发送原始数据,但它所做的是打印原始字符。我真正需要的是打印一个徽标,以及一些转弯信息(这是为客户服务机构准备的) 此外,打印机必须安装在本地,因此我不能使用IPP 是否有任何方法可以使用node.js打印图像或图像与文本的组合?它可以

好的,所以我尝试从网页打印(典型的“打印”按钮,但我不想显示打印对话框),所以我决定使用已经存在的node.js后端来完成这项任务(主要是因为没有打印对话框,从浏览器打印几乎是不可能的)

我找到了node printer()模块,它工作得很好,但只适用于文本。我试图发送原始数据,但它所做的是打印原始字符。我真正需要的是打印一个徽标,以及一些转弯信息(这是为客户服务机构准备的)

此外,打印机必须安装在本地,因此我不能使用IPP


是否有任何方法可以使用node.js打印图像或图像与文本的组合?它可以通过节点打印机完成,还是有其他方法?

我结束了调用exe为我完成工作的过程。我使用一个child_进程来调用,它为我完成所有的打印工作。我的代码是这样结束的:

var exec = require('child_process').exec;
exec('printhtml.exe file=file.html', function(err, data) {  
    console.log(data.toString());                       
}); 

实际上,您可以使用
节点打印机打印图像。这是我的工作

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();
    });
});

我成功地使用了节点IPP包


文档中的示例代码使用另一个节点模块PDFKIT将html/文件转换为PDF,但不起作用。请参见我的回答:有关一个工作示例。

节点打印机使用硬编码参数在posix上调用
lpr
,因此我认为您无法使用它打印图像。您是否正在尝试打印到客户端浏览器连接的打印机?或者打印到node.js服务器所连接的打印机上?node.js服务器也将在客户端计算机上运行(是一个用于打印的系统),如果您创建本地web应用,则可能有助于打开…对于已安装python和Visual Studio(如果是windows)的节点打印机对吗?
listPrinter
在我的例子中是空的,尽管我已经安装了打印机。有什么想法吗?