gpt4 book ai didi

typescript - qz 未定义 qz_tray

转载 作者:搜寻专家 更新时间:2023-10-30 21:00:02 24 4
gpt4 key购买 nike

我一直在寻找一种在客户端从 Web 打印的解决方案(https://medium.com/@yehandjoe/angular-2-raw-printing-service-56614d358754)是我一直关注的,它建议使用 qz 托盘来访问打印机。我已经按原样复制了代码,但它不起作用。

每当执行函数 getprinters() 时,它都会说“qz 未定义”

我已经使用这些 npm 命令导入了包

npm 安装 qz-tray sha ws

npm install rsvp,这是我的打印机服务代码:

import { Injectable } from '@angular/core';

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/fromPromise';
import 'rxjs/add/observable/throw';
import 'rxjs/add/operator/map';


declare var qz: any;
@Injectable()
export class PrinterService {
constructor() { }

errorHandler(error: any): Observable<any> {
return Observable.throw(error);
}

// Get list of printers connected
getPrinters(): Observable<string[]> {
return Observable
.fromPromise(qz.websocket.connect().then(() => qz.printers.find()))
.map((printers: string[]) => printers)
.catch(this.errorHandler);
}

// Get the SPECIFIC connected printer
getPrinter(printerName: string): Observable<string> {
return Observable
.fromPromise(qz.websocket.connect().then(() => qz.printers.find(printerName)))
.map((printer: string) => printer)
.catch(this.errorHandler);
}

// Print data to chosen printer
printData(printer: string, data: any): Observable<any> {
// Create a default config for the found printer
const config = qz.configs.create(printer);
return Observable.fromPromise(qz.print(config, data))
.map((anything: any) => anything)
.catch(this.errorHandler);
}

// Disconnect QZ Tray from the browser
removePrinter(): void {
qz.websocket.disconnect();
}

如果我做错了,请纠正,否则我将非常感谢任何其他替代解决方案

最佳答案

看来您需要将 qz 托盘导入您的供应商。

我使用了SHA.js:https://www.npmjs.com/package/sha.js用于加密和使用原生 promise 。

所以我将以下行添加到现有导入文件下方的文件顶部:

import * as shajs from 'sha.js';
import * as qz from 'qz-tray';

为 QZ 设置 SHA

记得告诉 QZ 使用新的 sha.js 包:

qz.api.setSha256Type(function (data) {
return shajs('sha256').update(data).digest('hex')
});

为 QZ 设置原生 promise

记得告诉 QZ 使用新的 sha.js 包:

qz.api.setPromiseType(function (resolver) {
return new Promise(resolver);
});

关于typescript - qz 未定义 qz_tray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48181466/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com