【问题标题】:Auto recognition on POS printerPOS打印机自动识别
【发布时间】:2011-03-11 07:52:32
【问题描述】:

我有许多 POS 打印机,需要自动识别打印机的类型。我需要在不使用 POS.NET 或打印机驱动程序的情况下执行此操作。我该怎么做?

【问题讨论】:

  • 我已经阅读了文档,但没有找到任何可以帮助我的东西。
  • 您必须有驱动程序才能使用打印机。这就是 Windows 的工作原理。你的问题没有任何意义。您建议如何与打印机通信?
  • 我不知道你想要做什么有一个标准。我相信它是特定于设备的。这就是为 .NET 创建 POS 的原因,因此您不必编写自己的 POS 设备驱动程序。您可能能够为您尝试与之交互的每台打印机找到 .NET 驱动程序的 POS,并使用 .NET Reflector 对驱动程序的编写方式进行逆向工程(尽管这可能违反许可证 - 查看每个打印机的软件许可证打印机,然后再做可能给您带来麻烦的事情)。

标签: c# posprinter


【解决方案1】:

没有像这样识别打印机的标准方法。

在一般情况下很难或不可能(打印机可能使用不同的 COM 端口配置 - 波特率等 - 和不同的协议)。由于可以通过 DIP 开关或发送命令以不同方式配置许多打印机,这一事实更加复杂。

如果您要识别的打印机数量相当少,并且您知道所有这些打印机的正确 COM 端口配置,那么您可以尝试发送命令/读取响应来查找组合,以便在您的打印机中唯一地识别打印机支持。

许多 POS 打印机支持 ESC/POS 协议的变体,并且对状态请求的响应(查看每台打印机的手册)可能会有差异,让您能够做出区分。

当然,您会遇到持续的维护难题 - 每次您想要支持新的打印机型号时,您都必须再次尝试找到一些显着特征并更新您的识别软件。

【讨论】:

  • 我希望这是另一种可用的方式,但我没有选择这是我的主管的要求
【解决方案2】:

看看这个源码中支持很多POS打印机的项目:

http://dev.cyberplat.com/redmine/repositories/browse/pt/2.0/src/Modules/Devices/Printers/Printers/Implementation1/src

在每台打印机的实现中,可以找到识别子程序,用于自动搜索连接的打印机。

【讨论】:

【解决方案3】:

刚刚做了一个快速的谷歌搜索,也许你可以列出可用的打印机,一个例子在这里:http://www.c-sharpcorner.com/UploadFile/mahesh/printerslisting06072007092859AM/printerslisting.aspx

这里:

How to get Printer Info in .NET?

不确定这只是列出已安装的打印机还是在线打印机?

【讨论】:

  • 我的打印机没有安装,它们只是插在 com 端口上。我不能用这个例子
  • Windows 是否不会自动检测它们并在可用时安装某种通用驱动程序?你试过这样做吗?
  • 我的问题是我无法安装驱动程序。我应该只使用手册中提供给他们的 POS 命令来使用这台打印机。
  • 如果您只能使用特定命令直接通信,我会寻找一个确认打印机存在的命令,或者更具体地说是打印机的唯一型号/名称/版本/ID/序列号并使用它来识别有一台打印机以及它是哪一台。您可能需要将标识符列表存储在自己的应用程序中并查看这些标识符以找到匹配项?
  • 如果您无法与打印机通信,如果您发送打印命令并且出现错误/响应,会发生什么情况?您可以尝试使用该反馈,否则您可能需要手动执行,即编号/命名打印机并询问用户连接了哪台打印机。
猜你喜欢
  • 2019-02-11
  • 1970-01-01
  • 2014-12-14
  • 2014-11-16
  • 2012-10-11
  • 1970-01-01
  • 2010-10-05
  • 1970-01-01
相关资源
最近更新 更多