Домой Network PJL (HP Printer Job Language). Часть 2. Смена/установка серийного номера принтера: Справочник...

PJL (HP Printer Job Language). Часть 2. Смена/установка серийного номера принтера: Справочник по C#

722
0


      После программного обновления или физической замены некоторых частей множительной техники, возникают ситуации полного стирания серийного номера или изменения на не существующий. Серийный номер представляет собой десятизначный буквенно-цифровой идентификатор, уникальный для каждого устройства. Просмотреть серийный номер можно двумя способами: прочитать его с этикетки универсального кода продукта, расположенного на задней панели устройства или из отчета конфигурации устройства. В данной ситуации именно второй способ будет выдавать вам ложную информацию. Для исправления серийного номера на подлинный с этикетки универсального кода продукта, необходимо воспользоваться языком PJL (HP Printer Job Language) – это разработанный Hewlett Packard язык, реализующий уровень контроля заданий и расширенного управления принтером.

      Более подробную информацию вы можете получить из первой инструкции по использованию данного языка — PJL (HP Printer Job Language).

      Команды для изменения или установки серийного номера на множительной техники, имеют следующий вид:
%-12345X@PJL
@PJL SET SERVICEMODE=HPBOISEID
@PJL SET SERIALNUMBER=
@PJL SET SERVICEMODE=EXIT
@PJL RESET
%-12345X
      Первая и последняя команда начинается с «Esc» и имеет десятичный код 27 (Hex код 1В). Данный код переводит принтер в режим приёма команды. Внутренние команды между этими двумя, воспринимаются принтером как команды управления. Принтер пытается распознать их как команду, входящую в его набор команд и если это ему удается, то он ее выполняет.
      Для отправки команд на принтер необходимо воспользоваться классом «TcpClient». Данный класс обеспечивает TCP-сервисы для соединений на стороне клиента. Отправка команд на принтер осуществляется с использованием класса «StreamWriter», который реализует класс «TextWriter» (класс представляющий средство записи, позволяющее записывать последовательные наборы символов) для записи символов в поток, используя кодировку UTF-8 и размер буфера по умолчанию.
Прежде чем отправлять и получать любые данные, необходимо определить базовый поток. Класс «TcpClient» предоставляет метод «GetStream()» исключительно для этих целей. С помощью базового сокета он создает экземпляр класса «NetworkStream» и возвращает его вызывающей программе.      Создайте проект Windows Form в Microsoft Visual Studio и добавьте три компонента на форму:

  • Button1 – Кнопка отправки команд на принтер;
  • textBox1 – Текстовое поле для ввода Ip адреса принтера;
  • textBox2 – Текстовое поле для ввода серийного номера.
ЧИТАТЬ ТАКЖЕ:  Получаем данные счетчика печати принтера через SNMP: Справочник по C#

У вас получится приведенный ниже пример:

      Сделайте двойной клик по компоненту «Button1» и перейдите в автоматически созданный метод «button1_Click», события «Click». Добавьте приведенный ниже листинг в данный метод:

System.Net.IPAddress ipAddr =
System.Net.IPAddress.Parse(textBox1.Text.ToString());

System.Net.Sockets.TcpClient client =
new System.Net.Sockets.TcpClient();
client.Connect(ipAddr, 9100);
System.IO.StreamWriter writer =
new System.IO.StreamWriter(client.GetStream());
writer.Write("x1B_%-12345X@PJLrn");
writer.Write("@PJL SET SERVICEMODE=HPBOISEIDrn");
writer.Write(string.Format("@PJL SET SERIALNUMBER={0}rn",
textBox2.Text.Trim()));
writer.Write("@PJL SET SERVICEMODE=EXITrn");
writer.Write("@PJL RESETrn");
writer.Write("x1B%-12345Xrn");
writer.Write("_x1BZrn");
writer.Flush();
writer.Close();
client.Close();

      Результат работы приведенного выше кода вы можете увидеть только на веб страничке самого устройства или выпустив страницу конфигурации. Ниже представлены модели, на которых был успешно протестирован данный код.

  • HP 9250C Digital Sender
  • HP Color LaserJet 3600
  • HP Color LaserJet 4650
  • HP Color LaserJet 5550
  • HP Color LaserJet CP3525
  • HP Color LaserJet CP5520 Series
  • HP Designjet 1055cm
  • HP Designjet 4020ps
  • HP Designjet 5500PS
  • HP Designjet T790 PostScript 44in
  • HP LaserJet 4050
  • HP LaserJet 4200
  • HP LaserJet 4250
  • HP LaserJet 500 MFP M525
  • HP LaserJet 5000
  • HP LaserJet 5100
  • HP LaserJet 5200
  • HP LaserJet 9040
  • HP LaserJet M1536dnf MFP
  • HP LaserJet M3035 MFP
  • HP LaserJet M5035 MFP
  • HP LaserJet MFP M725
  • HP LaserJet P2055dn

Ссылка для скачивания примера: Яндекс.Диск

PJL (HP Printer Job Language). Часть 2. Смена/установка серийного номера принтера: Справочник по C#

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь