gpt4 book ai didi

javascript - qz.print(config, data).catch(function(e) { console.error(e); }); 中的错误 : Missing name after . 运算符

转载 作者:行者123 更新时间:2023-12-03 00:02:31 25 4
gpt4 key购买 nike

过去几天我在谷歌上搜索,但在网络上的任何地方都找不到相关的解决方案。

我想使用安装在我的 win7 32 位桌面上的 qz 托盘通过 Google 脚本编辑器中的代码从 google 电子表格打印到通过 USB 连接到 dsktop 的 POS 打印机 Zjian 58,但出现错误:

后缺少名称。运算符(operator)。 (第 53 行,文件“代码”)驳回 :(

我想要运行的脚本是:

function POSprint() {

var rsvp = require('/Software/QZ Tray/demo/js/dependencies/rsvp-3.1.0.min.js');
var Sha256 = require('/Software/QZ Tray/demo/js/dependencies/sha-256.min.js');
var qz = require('/Software/QZ Tray/demo/js/qz-tray.js');

var config = qz.configs.create("POS-58");

var data = [
{ type: 'raw', format: 'image', flavor: 'file', data: 'assets/img/image_sample_bw.png', options: { language: "escp", dotDensity: 'double' } },
'\x1B' + '\x40', // init
'\x1B' + '\x61' + '\x31', // center align
'Beverly Hills, CA 90210' + '\x0A',
'\x0A', // line break
'www.qz.io' + '\x0A', // text and line break
'\x0A', // line break
'\x0A', // line break
'May 18, 2016 10:30 AM' + '\x0A',
'\x0A', // line break
'\x0A', // line break
'\x0A',
'Transaction # 123456 Register: 3' + '\x0A',
'\x0A',
'\x0A',
'\x0A',
'\x1B' + '\x61' + '\x30', // left align
'Baklava (Qty 4) 9.00' + '\x1B' + '\x74' + '\x13' + '\xAA', //print special char symbol after numeric
'\x0A',
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' + '\x0A',
'\x1B' + '\x45' + '\x0D', // bold on
'Here\'s some bold text!',
'\x1B' + '\x45' + '\x0A', // bold off
'\x0A' + '\x0A',
'\x1B' + '\x61' + '\x32', // right align
'\x1B' + '\x21' + '\x30', // em mode on
'DRINK ME',
'\x1B' + '\x21' + '\x0A' + '\x1B' + '\x45' + '\x0A', // em mode off
'\x0A' + '\x0A',
'\x1B' + '\x61' + '\x30', // left align
'------------------------------------------' + '\x0A',
'\x1B' + '\x4D' + '\x31', // small text
'EAT ME' + '\x0A',
'\x1B' + '\x4D' + '\x30', // normal text
'------------------------------------------' + '\x0A',
'normal text',
'\x1B' + '\x61' + '\x30', // left align
'\x0A' + '\x0A' + '\x0A' + '\x0A' + '\x0A' + '\x0A' + '\x0A',
'\x1B' + '\x69', // cut paper
'\x10' + '\x14' + '\x01' + '\x00' + '\x05', // Generate Pulse to kick-out cash drawer**
// **for legacy drawer cable CD-005A. Research before using.
];

qz.print(config, data).catch(function(e) { console.error(e); });

}

任何让它发挥作用的想法都非常受欢迎。

谢谢。

最佳答案

我刚刚收到 qz 托盘支持人员的答复:

Tres Finocchiaro 和他说:

错误: 后缺少名称。运算符(operator)。

这是由于 Google Apps 脚本不支持 ES6 Promises。 Polyfill 似乎也不起作用。您可以通过将 qz-tray.js 的内容粘贴到编辑器中来找到发生此问题的确切错误。错误在这里抛出:

_qz.security.callCert().then(sendCert).catch(sendCert);

原因是,这是对“.then”的第一次未经检查的调用,它是 RSVP/A+/Promise。不管黑客攻击似乎都能让它发挥作用。但我还不会浪费时间在这上面...继续阅读。

这不起作用的第二个原因...Google Apps 脚本内不支持 WebSocket。这是浏览器和打印 API 之间通信的核心组件。

有些人声称使用 Google 的 AJAX 形式(即 UrlFetchApp.fetch(...)),但这与 websocket 不同,即使是,也没有“localhost”的概念。 websocket 正在运行。

第三个原因这不起作用......我们支持两个 URL 上的连接:“localhost”和“localhost.qz.io”。两者都适用于 HTTPS。当尝试使用 Google Apps 脚本进行获取时,会发生以下情况:

DNS 错误:https://localhost:8181错误请求:https://localhost.qz.io:8181

我读过一些帖子,建议有办法在“服务器”(无论在哪里)上运行 Google Apps 脚本,但是连接到“本地主机”的问题变得更糟,因为 Google 的服务器不会运行我们的软件,即使他们这样做了,打印机也将无法访问。

到目前为止,我没有找到解决您问题的简单方法。如果您正在寻找一种快速破解方法来打印 Google 表格中的原始内容,您可能可以破解一个可以实现此目的的 URL。这需要 Java 知识,并且您必须 fork 源代码。

例如,您可以轻松地从 Sheets 中打开一个指向 =HYPERLINK("http://localhost:8182 ","http://localhost:8182 ") 的链接。您可以操纵 URL 将有效负载发送到包含大量 Base64 数据的应用程序,例如作为打印机名称和一些原始数据,但这一切都必须由 Java 开发人员从头开始编写。

代码将驻留在 doGet() 函数内。

这不是我们添加到基础产品中的东西,但您可以在 IntelliJ 中启动一个实例并对其进行攻击。我们的编译教程与软件项目一样简单。 https://github.com/qzind/tray/wiki/Compiling

最诚挚的问候,

尽管如此,所有评论和意见以及您如何解决从 Google Sheet 打印到热敏 pos 打印机的经验仍然最受欢迎,因为我仍在寻找为我提供此功能的解决方案。

谢谢。

关于javascript - qz.print(config, data).catch(function(e) { console.error(e); }); 中的错误 : Missing name after . 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55111747/

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