Перехват данных, отправляемых на принтер Windows (с использованием RedMon)

Мне нужно перехватить данные, отправляемые на принтер ESC/POS в Windows, и проанализировать их.

Поэтому я хотел получить данные в виде простого текста, чтобы можно было извлечь и понять информацию, отправляемую на принтер.

В настоящее время я пытался использовать RedMon для передачи потока данных на порт принтера. Но отправляемые данные представлены в виде растровой графики, то есть точек для печати, встроенных в команды ESC/POS.

Поэтому мне было интересно, может ли кто-нибудь подсказать мне, как получить данные для печати в текстовом формате, чтобы можно было извлечь из них некоторую информацию.

3 ответа

Решение

Данные, которые отправляются на принтер ESC/POS, являются растровыми данными, встроенными с помощью команд ESC/POS. Это то, что драйвер принтера ESC/POS генерирует из своего ввода. И вот что RedMon поймал для вас.

Кажется, вы хотите увидеть входные данные, отправленные в драйвер принтера. Это означает, что вам нужно выяснить, какие приложения используют принтер, и вам нужно перехватить то, что поступает в драйвер принтера.

Вы не говорите, хотите ли вы установить перехват в "живой" среде или только для временного тестирования. Если вы хотите временно протестировать, вы можете сделать следующие шаги:

  1. Приостановить очередь печати (верхний снимок экрана, ниже).
  2. Дополнительно: измените драйвер с ESC/POS на, скажем, PostScript или Microsoft XPS. Сделайте это на той же вкладке "Дополнительно" в диалоговом окне свойств принтера, как указано выше. (нижний скриншот справа внизу).
  3. Распечатать.
  4. Получить спулфил, ожидающий в каталоге спула. В Windows 8 это по умолчанию C: \ Windows \ System32 \ spool \ PRINTERS. Спулфил назван NNNNN.spl где NNNNN - номер текущего задания на печать.
  5. Проанализируйте данные PostScript или XPS.

Смотрите эти 3 скриншота:


Однако было бы намного проще (вместо использования RedMon), если вы...

  • ... просто включите настройку драйвера принтера под названием "Сохранять напечатанные документы": перейдите в свойства очереди печати => выберите вкладку "Дополнительно" => активируйте соответствующий флажок (см. левый снимок экрана выше);

  • ... рыба наматывается из каталога печати каталогов;

  • ... проанализировать свой NNNNN.spl файл:

    • в Windows 8 это будет файл XPS. Переименуйте его в NNNNN.xps, и вы сможете открыть его с помощью встроенного средства просмотра XPS.

    • в предыдущей версии Windows NNNNN.spl будет иметь формат файла соответствующего драйвера принтера (драйверы PostScript для PostScript, принтер XPS для Microsoft XPS, ESC/POS для вашего принтера, ...). Переименуйте его соответствующим образом и откройте его в средстве просмотра XPS или PostScript.

Если вы просто хотите захватить данные, вы можете создать порт принтера TCP/IP, который указывает на IP-адрес рабочей станции, и запустить мой инструмент vclpdcap. Он контролирует 9100 или 515 (RAW или LPR) и захватывает и записывает данные в файл.

Посмотрите здесь, если вам нужно больше инструкций, дайте мне знать.

http://www.ballisticecho.com/articles-and-downloads/print-capture-lpd-9100

Вы можете перевести принтеры Epson POS в режим отладки, где они будут распечатывать HEX-дамп входящих данных. См. Стр. 88 этого PDF-файла: http://www.pos.epson.com/epsonexpertTSG/Templates/POS_Developers_Details.aspx?NRMODE=Published&NRORIGINALURL=%2Fdevelopers%2Ftechresdetails%2Ehtm%3Fproductpk%3D642&NRNODEGUID=%7B934F5A6D-E01A-40B1-B2B0-648C1EC68047%7D&NRCACHEHINT=NoModifyGuest&productpk=642

Чтобы понять это, вы можете получить Epson ESC/POS SDK, если зарегистрируетесь и согласитесь с их условиями: https://www.epsonexpert.com/ee/prelogin/registration.htm

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