我需要找到一种从 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));