连接到 TM-U220时出错

我已经为爱普生打印机下载了 2 个 javascript SDK,支持 TM-U220,并且它们都不会连接到我的打印机,也不会打印。但是当我尝试使用其他 SDK(例如 QZ Tray)时,它可以工作,但是必须打开 QZ Tray id,我希望它在 android 中工作,因此我使用了来自 Epson 的 javascript SDK。

我已经为爱普生打印机下载了 2 个 javascript SDK,支持 TM-U220,并且它们都不会连接到我的打印机,也不会打印。但是当我尝试使用其他 SDK(例如 QZ Tray)时,它可以工作,但是必须打开 QZ Tray id,我希望它在 android 中工作,因此我使用了来自 Epson 的 javascript SDK。

连接到 ePOS 设备服务接口失败。[ERROR_TIMEOUT]


但是打印机做了一个小打印,我无法阅读的字母,并且在打印的最后:2http / 1.1。而在控制台中:

选项https://192.168.1.98/cgi-bin/epos/service.cgi?devid=local_printer&timeout=10000net::ERR_CONNECTION_REFUSED


and

选项https://192.168.1.98/cgi-bin/eposDisp/service.cgi?devid=local_display&timeout=10000net::ERR_CONNECTION_REFUSED


我还创建了自己的简单代码。这是我使用epos-2.3.0.js的第一个代码:

<!DOCTYPE html>
<html>
    <head>
        <meta cht="utf-8" />
        <title>Print Test</title>
        <script type="text/javascript" src="epos-2.3.0.js"></script>
        <script type="text/javascript">
            // Retrieving Printer objects (printer selection)
            var printer = null;
            // Retrieving Printer objects (printer selection)
            // Creating ePOSDevice objects (device connection and communication)
            var ePosDev = new epson.ePOSDevice();
            function connect() {
                var ipAddress = '192.168.1.98'; var port = '9100';
                ePosDev.connect(ipAddress, port, callback_connect);
            }
            // Creating ePOSDevice objects (device connection and communication)
            // Retrieving Printer objects (printer selection)
            function callback_connect(resultConnect) {
                var deviceId = 'local_printer';
                var options = {'crypto' : false, 'buffer' : false};
                if ((resultConnect == 'OK') || (resultConnect == 'SSL_CONNECT_OK')) {
                    // Retrieves the printer object
                    alert("Success callback connect");
                    ePostDev.createDevice(deviceId, ePosDev.DEVICE_TYPE_PRINTER, options, callback_createDevice);
                }
                else {
                    // Displays error messages
                    alert("Error callback connect");
                }
            }
            function callback_createDevice(deviceObj, errorCode) {
                if (deviceObj === null) {
                    // Displays an error message if the system fails to retreive the printer object
                    return;
                }
                printer = deviceObj;
                // Registers the print complete event
                printer.onreceive = function(response) {
                    if (response.success) {
                        // Displays the successful print message
                        alert("Callback create device response success");
                    }
                    else {
                        // Displays error messages
                        alert("Callback create device response failed");
                    }
                }
            }
            // Retrieving Printer objects (printer selection)
            // Creating print data (data buffering)
            function createData() {
                printer.addTextAlign(printer.ALIGN_CENTER);
                printer.addText('Hello World\n');
            }
            // Creating print data (data buffering)
            // Sending print data (printing and disconnection)
            function send() {
                if (ePosDev.isConnected) {
                    printer.send();
                }
            }
            // Sending print data (printing and disconnection)
        </script>
    </head>
    <body>
        <input type="on" onclick="connect()" value="Connect" />
        <input type="on" onClick="send()" value="Print Hello World" />
    </body>
</html>


这个我正在使用epos-print-3.2.0.js

<!DOCTYPE html>
<html>
    <head>
        <meta cht="utf-8" />
        <title>Print Test 2</title>
        <script type="text/javascript" src="epos-print-3.2.0.js"></script>
        <script type="text/javascript">
            function buildMessage() {
                // Create a print document
                var builder = new epson.ePOSBuilder();
                builder.addTextLang('en');
                builder.addTextSmooth(true);
                builder.addTextFont(builder.FONT_A);
                builder.addTextSize(3, 3);
                builder.addText('Hello,\tWorld!\n');
                builder.addCut(builder.CUT_FEED);
                var request = builder.toString();
                var address = 'http://192.168.1.98/cgi-bin/epos/service.cgi?devid=local_printer&timeout=10000';
                // Create an ePOS-Print object
                var epos = new epson.ePOSPrint(address);
                //Send the print document
                epos.send(request);
            }
        </script>
    </head>
    <body>
        <on onclick="buildMessage()">Run</on> 
    </body>
</html>

当我运行第二个代码时,我在控制台中收到此错误:

OPTIONShttp://192.168.1.98/cgi-bin/epos/service.cgi?devid=local_printer&timeout=10000
and

XMLHttpRequest 无法加载http://192.168.1.98/cgi-bin/epos/service.cgi?devid=local_printer&timeout=10000。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源“null”。响应的 HTTP 状态代码为 405。


但是当我将地址从
http://192.168.1.98/cgi-bin/epos/service.cgi?devid=local_printer&timeout=10000
更改为
http://192.168.1.98:9100/cgi-bin/epos/service.cgi?devid=local_printer&timeout=10000
时,它向我打印了以下内容:

OPTIONS:/ cgi-bin / epos / service.cgi?devid = local-printer & amp;timeout = 10000 HTTP / 1.1
主机:192.168.1.98:9100
连接:保持活动状态访问控制请求方法:POST
源:null
用户代理:Mizilla / 5.0 (Windows NT 6.3;WOW64) AppleWebKit

2

对于新的 TM-T88VI,我收到了同样的错误。然后,我在 ePOS SDK 用户手册中看到,为了控制 TM 打印机,您需要从打印机上的 EpsonNet Config 中启用 ePOS-Print 设置。

查看手册为了直接控制 TM-U220(不使用 TM 智能打印机),您需要安装 UB-E04 或 UB-R04 网络接口。它说您可以通过打印状态表来检查安装了哪些接口。

1

从外观上看,这是一个跨源 HTTP 请求问题(CORS)。此 MDN 文章解释了这一点:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

我猜测 IP 92.168.1.98 是打印机 IP(位于本地网络上)。请参阅:http://trendblog.net/ever-wondered-use-192-168-x-x-ip-addresses-home/,您可以按照上面的帖子中所述通过端口 9100 访问它。

因此,由于您的实际 Web 应用程序驻留在与打印机 IP 和 Web 工作方式不同的 IP 上,因此当您调用不同的 IP / 主机时需要 CORS,以防止跨站点脚本攻击。

这是常识,如果打印机通过端口 9100 暴露自己,你应该有你的 URI 的一部分。这就是为什么http://192.168.1.98:9100/cgi-bin/epos/service.cgi?devid=local_printer&timeout=10000工作,而另一个没有。

至于试图通过 Android 设备访问此...问题是该设备是否已加入您的本地网络(192.168....)还是在 Internet 上?如果它已连接到 Internet,则我认为您无法访问可能不会暴露于 Internet(具有公共 IP)的打印机。只要它们属于同一网络,它们就应该能够连接到公司的 WIFI。如果没有,您将需要将其暴露给其他 Android 打印机(

0

我在 TM-T20III 上遇到了同样的问题。您必须使用爱普生的实用程序软件作为打印机。在高级网络设置中,有一个名为“过滤器”的菜单,我将 POS 的 IP地址添加为接受地址。

0

但是当我将地址从http://192.168.1.98/cgi-bin/epos/service.cgi?devid=local_printer&timeout=10000更改为http://192.168.1.98:9100/cgi-bin/epos/service.cgi?devid=local_printer&timeout=10000时,它打印了我这个:

端口 9100 是打印机的原始输入端口,它似乎可以打印整个输入请求而无需解释。ePOS 服务似乎在端口 80 / 443 上可用。

对于新的 TM-T88VI,我收到了同样的错误。然后,我在 ePOS SDK 用户手册中看到,为了控制 TM 打印机,您需要从打印机上的 EpsonNet Config 中启用 ePOS-Print 设置。

启用 ePOS 打印服务对我来说是正确的解决方案。为了做到这一点,我不得不更新打印机的固件 (TM-T88VI)。在出厂默认值中,没有打开 ePOS 服务的选项。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(219)
现代网站如何检查您的密码而不实际存储它 (modern websites)
上一篇
Windows身份验证:允许哪些用户
下一篇

相关推荐

  • win7服务器版实现更高效率的企业级网络管理

    Windows 7服务器版是一款由微软推出的服务器操作系统,它是Windows Server 2008 R2的后续版本,具有更强大的网络、存储和管理功能,可以满足企业网络的需求。…

    2023-02-03 03:37:23
    0 32 82
  • javaweb开发基本三层架构:基于 JavaWeb 的三层架构开发实践

    javaweb开发基本三层架构是指,在软件开发中,将应用程序的功能分为三层:表示层、业务逻辑层和数据访问层。其中,表示层负责处理用户界面和用户交互,业务逻辑层负责处理业务逻辑,数据访问层负责处理数据存取。…

    2023-03-16 03:07:14
    0 29 35
  • javaweb面试:如何在Java Web开发中实现高性能

    示例示例JavaWeb面试是指对应聘者进行JavaWeb开发技术的考核,以确定应聘者是否具备开发JavaWeb应用程序的能力。JavaWeb面试题通常会涉及以下内容:…

    2023-01-04 05:29:47
    0 34 95
  • java和javascript:如何使用Java和JavaScript实现Web开发

    示例示例Java和都是编程语言,但它们之间有很大的不同。Java是一种面向对象的、编译型的、跨平台的编程语言,它的代码在运行前需要编译成字节码,然后才能在计算机上运行。Java程序可以在任何支持Java虚拟机的计算机上运行,而不必重新编译。下面是一个简单的Java程序:…

    2023-01-13 09:45:13
    0 67 96
  • php毕业设计项目:基于PHP的电子商务网站开发

    php毕业设计项目可以是一个网站,也可以是一个应用程序。要求学生根据自己的需求,利用php语言开发出一个完整的网站或者应用程序,并且要求有良好的功能、界面和安全性。…

    2023-01-19 15:01:31
    0 80 31
  • https服务器保障您的数据安全

    HTTPS服务器是一种使用安全套接字层(SSL)协议来传输信息的Web服务器。它使用SSL/TLS协议来为发送到服务器的数据提供安全性,以防止黑客或其他攻击者拦截或窃取数据。HTTPS服务器还可以验证客户端的身份,以确保只有特定的客户端才能访问服务器上的数据。…

    2023-03-03 15:50:16
    0 13 53
  • php培训课程机构:PHP培训课程掌握最新的Web开发技术,成为高级PHP程序员!

    PHP培训课程机构是一家以PHP为主要课程的培训机构,专注于向不同水平的学员提供专业的PHP培训课程。通常,这些机构会根据学员的需求和能力,设计出不同的课程,以满足学员的不同需求。…

    2023-01-27 08:39:38
    0 51 99
  • html网页尾部:欢迎访问我们的网站!

    html网页尾部是指在网页最下方的一部分,它可以包含一些有用的信息,比如版权声明、联系信息、网站地图等。以下是一个示例的html网页尾部代码:…

    2023-01-29 10:43:36
    0 54 80

发表评论

登录 后才能评论

评论列表(54条)