【问题标题】:ESC/POS Command AnswerESC/POS 命令应答
【发布时间】:2015-05-15 12:40:55
【问题描述】:

早上好,

我正在开发一个自助服务终端应用程序。在该应用程序中,我需要使用ESC/POS 协议向打印机发送一些命令。

我有一些命令可以提供有关打印机的信息(打印机状态、纸张结束状态)。对于发送命令,我使用this function,但我还需要阅读打印机回复。 我该怎么做? (打印机以USB 模式连接)。

我正在delphi xe2上开发

谢谢

【问题讨论】:

  • 看起来Escape 的最后一个参数应该是指向数据结构的指针(在您的链接示例中为 nil)以接收输出。
  • @TOndrej 谢谢,但我不知道 delphi lpvOutData 的结构如何。我尝试了示例中的 TPassThroughData 但没有成功..
  • 欢迎。该结构可能取决于打印机,应在其文档中进行描述。
  • 我不确定。。手册上没有信息。我尝试了很多解决方案(字节数组、短字符串、字符串、整数..)但没有任何效果
  • 我不是在谈论用户手册,您需要针对开发人员的技术文档。

标签: windows delphi delphi-xe2 thermal-printer escpos


【解决方案1】:

该示例假设您的字符串类型很简单,例如shortstring。尝试将s 声明为shortstring。它不能与widestringunicode 一起使用。

【讨论】:

  • 程序戳记(s:短字符串);类型 TPassThroughData = 记录 nLen:整数;数据:字节数组[0 .. 255];结尾; var PTBlock: TPassThroughData; PTReply: TPassThroughData;开始打印机.BeginDoc; PTBlock.nLen := 长度; StrPCopy(@PTBlock.Data, s); Escape(Printer.Handle, PASSTHROUGH, 0, @PTBlock, @PTReply);打印机.EndDoc;结尾;有所改变,但没有任何改变......
【解决方案2】:

您是否检查过 USB 连接是否产生了新的串行端口?

如果设备管理器中显示一个新的串口,我可以帮助你发送带有Delphi Comport组件的ESC命令。

但是如果没有显示串口,我不知道如何控制热敏打印机。

【讨论】:

    猜你喜欢
    • 2019-10-27
    • 2017-05-06
    • 2016-12-24
    • 2015-03-25
    • 2020-05-07
    • 1970-01-01
    • 2013-06-18
    • 2017-06-09
    • 1970-01-01
    相关资源
    最近更新 更多