Автоматическое распознавание на POS-принтере
У меня есть несколько POS-принтеров, и мне нужно автоматически распознавать тип принтера. Мне нужно сделать это без использования POS.NET или драйверов принтера. Как я могу это сделать?
3 ответа
Не существует стандартного способа распознавания таких принтеров.
В общем случае это сложно или невозможно (принтеры могут использовать другую конфигурацию COM-порта - скорость передачи данных и т. Д. - и разные протоколы). Это усложняется еще и тем, что многие принтеры могут быть настроены по-разному с помощью DIP-переключателей или путем отправки команд.
Если у вас достаточно небольшое количество принтеров для распознавания, для всех из которых вы знаете правильную конфигурацию COM-порта, вы можете поэкспериментировать с отправкой команд / ответов на чтение, чтобы найти комбинации, которые позволят вам однозначно идентифицировать принтеры среди тех, которые вы поддерживаете.
Многие POS-принтеры поддерживают варианты протокола ESC/POS, и ответы на запросы о состоянии (см. Руководство к каждому принтеру) могут иметь различия, которые позволят вам провести различие.
Конечно, у вас будет постоянная головная боль при обслуживании - каждый раз, когда вы захотите поддержать новую модель принтера, вам придется снова пытаться найти отличительную характеристику и обновить программное обеспечение для распознавания.
Взгляните на этот проект, который поддерживает множество POS-принтеров в исходных кодах:
В реализации каждого принтера вы можете найти подпрограмму распознавания для автоматического поиска подключенных принтеров.
Просто сделал быстрый поиск в Google, может быть, вы можете просто перечислить доступные принтеры, пример здесь: http://www.c-sharpcorner.com/UploadFile/mahesh/printerslisting06072007092859AM/printerslisting.aspx
и здесь:
Как получить информацию о принтере в.NET?
Не уверены, что в этом списке перечислены только установленные принтеры или принтеры онлайн?