Как получить уникальный идентификатор USB-принтера, подключенного к ПК?

Я разрабатываю решение для печати, при котором наш сервер отправляет запрос на печать на USB-принтер, и принтер печатает. Принтеры подключены через USB к ПК, и может быть несколько компьютеров для получения запросов на печать с сервера. Сейчас я тестирую с 2 принтерами Zebra ZT230, но принтерами могут быть любые принтеры этикеток Zebra или Honeywell(Intermec) позже.

Мое предыдущее решение с Zebra Browser Print знает каждый принтер по его UID(например, JTM00001), поэтому сервер сохраняет UID и может отправлять команды печати на определенный принтер, когда это необходимо. Но кажется, что Browser Print не поддерживает параллельное соединение (со стороны принтера) с USB (со стороны ПК), и для нужд нашего клиента мы решили разработать собственное решение.

В C# и Java я могу отправлять команды на принтер с его зарегистрированным именем на ПК. Но это имя автоматически генерируется системой (например, "ZDesigner ZT230-200dpi ZPL") и может быть отредактировано пользователями, поэтому сервер не знает своего имени, пока не установлен драйвер принтера, и разные ПК могут иметь принтеры с одинаковым именем, что означает имя принтера не является уникальным. Тогда сервер может хранить как информацию о ПК, так и имя принтера, но если произойдет какое-либо изменение в подключенном компьютере принтера, информация о сервере не будет надежной.

Поэтому я хочу получить информацию UID, но пока не могу найти соответствующую команду ZPL, и информация, полученная командой командной строки Windows, похоже, не содержит информацию UID. Мои вопросы:

  1. Есть ли соответствующая команда ZPL для получения UID принтера?
  2. Есть ли способ узнать uid принтера с помощью C#, Java(или любого другого языка) или программной оболочки окна?
  3. Есть ли способ получить подобную уникальную информацию от принтера Honeywell?

Заранее спасибо.

0 ответов

Другие вопросы по тегам