- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
过去几天我在谷歌上搜索,但在网络上的任何地方都找不到相关的解决方案。
我想使用安装在我的 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/
reqwest v0.9 将 serde v1.0 作为依赖项,因此实现 converting serde_json errors into reqwest error . 在我的代码中,我使用 se
我有这个代码: let file = FileStorage { // ... }; file.write("Test", bytes.as_ref()) .map_err(|e| Mu
我只是尝试用angular-cli创建一个新项目,然后运行服务器,但是它停止并显示一条有趣的消息:Error: No errors。 我以这种方式更新了(希望有帮助):npm uninstall -g
我从我的 javascript 发送交易 Metamask 打开传输对话框 我确定 i get an error message in metamask (inpage.js:1 MetaMask -
这个问题在这里已经有了答案: How do you define custom `Error` types in Rust? (3 个答案) How to get a reference to a
我想知道两者之间有什么大的区别 if let error = error{} vs if error != nil?或者只是人们的不同之处,比如他们如何用代码表达自己? 例如,如果我使用这段代码: u
当我尝试发送超过 50KB 的图像时,我在 Blazor 服务器应用程序上收到以下错误消息 Error: Connection disconnected with error 'Error: Serv
我有一个error-page指令,它将所有异常重定向到错误显示页面 我的web.xml: [...] java.lang.Exception /vi
我有这样的对象: address: { "phone" : 888, "value" : 12 } 在 WHERE 中我需要通过 address.value 查找对象,但是在 SQL 中有函数
每次我尝试编译我的代码时,我都会遇到大量错误。这不是我的代码的问题,因为它在另一台计算机上工作得很好。我尝试重新安装和修复,但这没有帮助。这是整个错误消息: 1>------ Build starte
在我的代码的类部分,如果我写一个错误,则在不应该的情况下,将有几行报告为错误。我将'| error'放在可以从错误中恢复的良好/安全位置,但是我认为它没有使用它。也许它试图在某个地方恢复中间表情? 有
我遇到了 csv 输入文件整体读取故障的问题,我可以通过在 read_csv 函数中添加 "error_bad_lines=False" 来删除这些问题来解决这个问题。 但是我需要报告这些造成问题的文
在 Spring 中,验证后我们在 controller 中得到一个 BindingResult 对象。 很简单,如果我收到验证错误,我想重新显示我的表单,并在每个受影响的字段上方显示错误消息。 因此
我不知道出了什么问题,因为我用 Java 编程了大约一年,从来没有遇到过这个错误。在一分钟前在 Eclipse 中编译和运行工作,现在我得到这个错误: #A fatal error has been
SELECT to_char(messages. TIME, 'YYYY/MM/DD') AS FullDate, to_char(messages. TIME, 'MM/DD
我收到这些错误: AnonymousPath\Anonymized.vb : error BC30037: Character is not valid. AnonymousPath\Anonymiz
我刚刚安装了 gridengine 并在执行 qstat 时出现错误: error: commlib error: got select error (Connection refused) erro
嗨,我正在学习 PHP,我从 CRUD 系统开始,我在 Windows 上安装了 WAMP 服务器,当我运行它时,我收到以下错误消息。 SCREAM: Error suppression ignore
我刚刚开始一个新项目,我正在学习核心数据教程,可以找到:https://www.youtube.com/watch?v=zZJpsszfTHM 我似乎无法弄清楚为什么会抛出此错误。我有一个名为“Exp
当我使用 Jenkins 运行新构建时,出现以下错误: "FilePathY\XXX.cpp : fatal error C1853: 'FilePathZ\XXX.pch' precompiled
我是一名优秀的程序员,十分优秀!