我需要找到一种从 Electron 使用javascript打印收据的方法。我已经尝试过 QZ-TRAY ,但是由于Electron而无法使用。我也尝试过 node-thermal-printer ,但它也对我没有用。这里有人知道如何在不使用javascript(Electron)询问用户的情况下打印收据吗?

编辑

Qz-tray提供的解决方案非常好,很难被击败。

如果出现错误RSVP is not defined,则需要在此行中启用 native Javascript promise 。
qz.api.setPromiseType(resolver => new Promise(resolver));

最佳答案

引用相关评论...



“对于QZ,花了20秒钟才找到了这个:https://qz.io/wiki/2.0-api-override

如评论所建议的那样发布解决方案。感谢@ gilbert-gabriel的帮助。

默认情况下,RSVP Promise已启用,但是通过以下方式支持 native JS Promise:

qz.api.setPromiseType(resolver => new Promise(resolver));

一个更全面的示例:
// Install dependencies:
/*
   npm install qz-tray js-sha256
*/

// Provide API overrides and start talking to QZ Tray:
import * as qz from 'qz-tray';
import { sha256 } from 'js-sha256';

qz.api.setSha256Type(data => sha256(data));
qz.api.setPromiseType(resolver => new Promise(resolver));

qz.websocket.connect()
 .then(qz.printers.getDefault)
 .then(printer => console.log("The default printer is: " + printer))
 .then(qz.websocket.disconnect)
 .catch(err => console.error(err));

09-11 17:34