Printing 打印机错误(EX_超时)Epson TM-T88V-I与Epson.ePOSBuilder 爱普生TM-T88V-i型。 连接到局域网。 Ping响应正常。 打印状态表OK。

Printing 打印机错误(EX_超时)Epson TM-T88V-I与Epson.ePOSBuilder 爱普生TM-T88V-i型。 连接到局域网。 Ping响应正常。 打印状态表OK。,printing,point-of-sale,thermal-printer,network-printers,Printing,Point Of Sale,Thermal Printer,Network Printers,我可以访问打印机配置页面 在配置页面-部分设备在打印机本地打印机的测试打印按钮中引发错误,错误:EX_TIMEOUT出现超时 参考ePOS打印API/XML: 简单测试网站: print.html <script type="text/javascript" src="js/epos-print-3.0.0.js"></script> 请求服务.cgi: <?xml version="1.0" encoding="utf-8"?> <s:Envelo

我可以访问打印机配置页面

在配置页面-部分设备在打印机本地打印机的测试打印按钮中引发错误,错误:EX_TIMEOUT出现超时

参考ePOS打印API/XML:

简单测试网站:

print.html

<script type="text/javascript" src="js/epos-print-3.0.0.js"></script>
请求服务.cgi:

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body>
        <epos-print xmlns="http://www.epson-pos.com/schemas/2011/03/epos-print">
            <text>Test Print!!&#10;</text>
            <feed line="1"/>
            <cut/>
        </epos-print>
    </s:Body>
</s:Envelope>
要求正确

Sucess="False" code="DeviceNotFound" status="0"
Windows应用程序示例显示了相同的响应:

Public Class Form1

    ' URL of ePOS-Print supported TM printer
    Private address As String = "http://192.168.x.x/cgi-bin/epos/service.cgi?devid=local_printer&timeout=10000"

    ' XML namespace
    Private soap As XNamespace = "http://schemas.xmlsoap.org/soap/envelope/"
    Private epos As XNamespace = "http://www.epson-pos.com/schemas/2011/03/epos-print"

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        ' Create print document
        Dim req As XElement = _
            <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
                <s:Body>
                    <epos-print xmlns="http://www.epson-pos.com/schemas/2011/03/epos-print">
                        <text lang="en" smooth="true">Intelligent Printer&#10;</text>
                        <cut/>
                    </epos-print>
                </s:Body>
            </s:Envelope>

        ' Send print document
        Dim client As WebClient = New WebClient()
        client.Headers.Set("Content-Type", "text/xml; charset=utf-8")
        AddHandler client.UploadStringCompleted, AddressOf UploadStringCompletedEventHandler
        client.UploadStringAsync(New Uri(address, UriKind.Absolute), req.ToString())

    End Sub

    ' Receive response document
    Private Sub UploadStringCompletedEventHandler(sender As Object, e As UploadStringCompletedEventArgs)

        If (e.Error IsNot Nothing) Then
            MessageBox.Show(e.Error.Message)
        Else
            'Parse response document
            Dim res As XElement = XElement.Parse(e.Result)
            Dim c = From el In res.Descendants(epos + "response") Select el.Attribute("success")
            MessageBox.Show(c.First().Value)
        End If

    End Sub

End Class
两种可能性:

打印机的设备id与本地打印机不同-请检查配置页面

或者ePOSPrint函数不允许直接发送url。我现在正在为同一台打印机构建一个应用程序,在我的第一个测试页面上显示的内容与您的不同:

var epos = new epson.ePOSPrint();
epos.address = 'http://192.168.0.1/cgi-bin/epos/services.cgi?devid=local_printer&timeout=6000';
请注意空url以及初始化后url的传递方式


检查后,看起来我的其他测试代码确实将url作为参数提交给了函数,就像您提交的一样,所以我唯一的猜测是设备id local_printer不正确。

但是我们如何获得设备id,因为在配置页面中没有类似设备id的内容?我再也无法访问打印机了,但我相信local_printer可能是打印机的原始名称=设备ID,所以我从它开始。semmelbroesel。我在上面发现了一些东西一些打印机配置页面是不同的。我有TM82-i,它比TM-U220-B和TM-88V-i有很多选择。在配置页面中,我可以设置TM-82-i的设备id。
Sucess="False" code="DeviceNotFound" status="0"
Public Class Form1

    ' URL of ePOS-Print supported TM printer
    Private address As String = "http://192.168.x.x/cgi-bin/epos/service.cgi?devid=local_printer&timeout=10000"

    ' XML namespace
    Private soap As XNamespace = "http://schemas.xmlsoap.org/soap/envelope/"
    Private epos As XNamespace = "http://www.epson-pos.com/schemas/2011/03/epos-print"

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        ' Create print document
        Dim req As XElement = _
            <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
                <s:Body>
                    <epos-print xmlns="http://www.epson-pos.com/schemas/2011/03/epos-print">
                        <text lang="en" smooth="true">Intelligent Printer&#10;</text>
                        <cut/>
                    </epos-print>
                </s:Body>
            </s:Envelope>

        ' Send print document
        Dim client As WebClient = New WebClient()
        client.Headers.Set("Content-Type", "text/xml; charset=utf-8")
        AddHandler client.UploadStringCompleted, AddressOf UploadStringCompletedEventHandler
        client.UploadStringAsync(New Uri(address, UriKind.Absolute), req.ToString())

    End Sub

    ' Receive response document
    Private Sub UploadStringCompletedEventHandler(sender As Object, e As UploadStringCompletedEventArgs)

        If (e.Error IsNot Nothing) Then
            MessageBox.Show(e.Error.Message)
        Else
            'Parse response document
            Dim res As XElement = XElement.Parse(e.Result)
            Dim c = From el In res.Descendants(epos + "response") Select el.Attribute("success")
            MessageBox.Show(c.First().Value)
        End If

    End Sub

End Class
var epos = new epson.ePOSPrint();
epos.address = 'http://192.168.0.1/cgi-bin/epos/services.cgi?devid=local_printer&timeout=6000';