如何使用 CUPS 和 nodejs 打印作业

Posted

技术标签:

【中文标题】如何使用 CUPS 和 nodejs 打印作业【英文标题】:How print job with CUPS and nodejs 【发布时间】:2019-10-15 23:39:48 【问题描述】:

亲爱的,经过这么多小时的配置,我到了不明白为什么不能打印的地步。我有一个带 CUPS 的 debian 服务器,我的想法是从我在 NODEJS 中的 API 可以打印一个 .pdf。 CUPS 和 NODE 都给我同样的错误。 “版本”:“2.0”,“状态代码”:“客户端错误错误请求”,“id”:27221384,“操作属性标签”:“属性字符集”:“utf-8”, “attributes-natural-language”:“en-us”,“status-message”:“打印请求中没有文件。”。如果我从 CUPS 打印测试页,它可以完美运行。有谁知道这是 NODEJS 中的代码问题还是 CUPS 配置的问题?

我的控制器

    var ipp = require("ipp");
var printer = ipp.Printer("http://root:1@192.168.0.25:631/printers/EPSON_TM-T20II");
var fs = require("fs");
var document;

fs.readFile("C:\\filename.pdf", function(err, data) 
if (err) 
    console.log(err)


document = data;
);

var msg = 
    "operation-attributes-tag": 
        "requesting-user-name": "pos",
        "document-format": "application/pdf"
    ,
    data: document ;

printer.execute("Print-Job", msg, function(err, res) 
        console.log(err);
        console.log(JSON.stringify(res));
);

【问题讨论】:

【参考方案1】:
    fs.readFile("C:\\filename.pdf", function(err, data) 
if (err) 
    console.log(err)
 else 
    var msg = 
        "operation-attributes-tag": 
            "requesting-user-name": "pos",
            "document-format": "application/pdf"
        ,
        data: data ;

    printer.execute("Print-Job", msg, function(err, res) 
            console.log(err);
            console.log(JSON.stringify(res));
            return
    );

【讨论】:

以上是关于如何使用 CUPS 和 nodejs 打印作业的主要内容,如果未能解决你的问题,请参考以下文章

如何配置 Cups Linux 服务器以仅允许从特定 IP 打印?

更改 CUPS 打印机名称

使用 Cups Api 检测打印机状态变化

使用 CUPS 打印,我的应用程序何时可以退出?

如何使用 cups API 添加 System V 过滤器?

使用中的 CUPS 打印机