【问题标题】:is it possible to print an image with node.js?是否可以使用 node.js 打印图像?
【发布时间】:2014-05-02 22:21:01
【问题描述】:

好的,所以我正在尝试从网页打印(典型的“打印”按钮,但我不希望出现打印对话框)所以我决定使用我已经存在的 node.js 后端来执行任务(主要是因为没有打印对话框几乎不可能从浏览器打印)。

我找到了 node-printer (https://github.com/tojocky/node-printer) 模块,它工作得很好,但仅限于文本。我试图发送 RAW 数据,但它所做的是打印原始字符。我真正需要的是打印一个徽标以及一些转弯信息(这是针对客户服务机构的)。

另外,打印机必须安装在本地,所以我不能使用IPP。

有什么方法可以打印图像,或者使用 node.js 打印图像和文本的组合?可以通过节点打印机完成还是有其他方法?

【问题讨论】:

  • node-printer 在 posix 上使用硬编码参数调用 lpr,所以我认为您无法使用它打印图像。
  • 您是否要打印到客户端浏览器所连接的打印机?或者打印到node.js服务器连接的打印机上?
  • node.js 服务器也将在客户端机器上运行(是一个打印轮次的系统)
  • 如果您创建本地网络应用程序可能会有助于打开node-webkit...

标签: javascript node.js printing


【解决方案1】:

我结束了调用 exe 来为我完成工作。我使用 child_process 调用 printhtml,它为我完成了所有打印工作。我的代码以这种方式结束:

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

【讨论】:

    【解决方案2】:

    实际上,您可以使用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();
        });
    });
    

    【讨论】:

    • 对于节点打印机,您已经安装了 python 以及 Visual Studion(如果是 windows)对吗?
    • listPrinter 在我的情况下是空的,尽管我已经安装了打印机。有什么想法吗?
    【解决方案3】:

    我在 Node IPP 包 https://www.npmjs.com/package/ipp 上取得了成功。

    文档上的示例代码使用另一个节点模块 PDFKIT 将您的 html/文件转换为 PDF,但不起作用。请在此处查看我的答案:Cannot print with node js ipp module 以获取工作示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-18
      相关资源
      最近更新 更多