我有许多POS打印机,需要自动识别打印机的类型。我需要在不使用POS.NET或打印机驱动程序的情况下完成此操作。我该怎么做呢?
发布于 2011-03-11 16:41:18
没有标准的方法来识别这样的打印机。
这在一般情况下是困难或不可能的(打印机可能使用不同的COM端口配置-波特率等-以及不同的协议)。更复杂的是,许多打印机可以通过DIP开关或发送命令以不同的方式进行配置。
如果您要识别的打印机数量相当少,并且您知道所有这些打印机的正确COM端口配置,则可以尝试发送命令/读取响应,以查找允许您在所支持的打印机中唯一标识打印机的组合。
许多POS打印机支持ESC/POS协议的变体,并且对状态请求的响应(请查看每个打印机的手册)可能会有所不同,从而使您能够做出区分。
当然,你会有一个持续的维护头痛-每次你想支持一个新的打印机型号,你将不得不再次尝试找到一些明显的特征,并更新您的识别软件。
发布于 2011-04-17 23:39:41
看看这个项目,它在源代码中支持大量的POS打印机:
http://dev.cyberplat.com/redmine/repositories/browse/pt/2.0/src/Modules/Devices/Printers/Printers/Implementation1/src
在每台打印机的实现中,你可以找到识别子程序,用于自动搜索连接的打印机。
发布于 2011-03-11 16:04:40
我在谷歌上快速搜索了一下,也许你可以列出可用的打印机,例如:http://www.c-sharpcorner.com/UploadFile/mahesh/printerslisting06072007092859AM/printerslisting.aspx
还有这里:
How to get Printer Info in .NET?
不确定这是否仅列出已安装的打印机或联机打印机?
https://stackoverflow.com/questions/5270327
复制相似问题