首页 > 解决方案 > 节点打印机不在网络打印机中打印(node.js)

问题描述

我正在尝试将文档直接发送到我的打印机。我使用了节点打印机并且没有错误,但打印机没有收到任何东西。这是我的代码:

var printer = require("printer");
    filename = process.argv[2] || __filename;

console.log('platform:', process.platform);
console.log('default printer name: ' + (printer.getDefaultPrinterName() || 'is not defined on your computer'));
console.log('try to print file: ' + filename);

if( process.platform != 'win32') {
    printer.printFile({filename:filename,
    printer: process.env[3], 
    success:function(jobID){
       console.log("sent to printer with ID: "+jobID);
    },
    error:function(err){
       console.log(err);
    }
});

} else {
  var fs = require('fs');
  printer.printDirect({
    data:fs.readFileSync(filename).toString(),
    printer: process.env[3], 
    type: 'RAW',
    success:function(jobID){
      console.log("sent to printer with ID: "+jobID);
    },
    error:function(err){
      console.log(err);
    }
});

我测试了“node print.js lorem.txt”,看起来文档被发送到打印队列,但网络打印机没有收到任何东西。

顺便说一句,我正在使用 Windows 10。

标签: javascriptnode.jsprinting

解决方案


您正在指定打印机,printer: process.env[3]但看起来您想使用默认打印机,因为您正在写入printer.getDefaultPrinterName()控制台,所以请尝试删除printer: process.env[3],并让模块在默认打印机中打印,看看是否能解决您的问题。


推荐阅读