Перехват данных, отправляемых на принтер Windows (с использованием RedMon)
Мне нужно перехватить данные, отправляемые на принтер ESC/POS в Windows, и проанализировать их.
Поэтому я хотел получить данные в виде простого текста, чтобы можно было извлечь и понять информацию, отправляемую на принтер.
В настоящее время я пытался использовать RedMon для передачи потока данных на порт принтера. Но отправляемые данные представлены в виде растровой графики, то есть точек для печати, встроенных в команды ESC/POS.
Поэтому мне было интересно, может ли кто-нибудь подсказать мне, как получить данные для печати в текстовом формате, чтобы можно было извлечь из них некоторую информацию.
3 ответа
Данные, которые отправляются на принтер ESC/POS, являются растровыми данными, встроенными с помощью команд ESC/POS. Это то, что драйвер принтера ESC/POS генерирует из своего ввода. И вот что RedMon поймал для вас.
Кажется, вы хотите увидеть входные данные, отправленные в драйвер принтера. Это означает, что вам нужно выяснить, какие приложения используют принтер, и вам нужно перехватить то, что поступает в драйвер принтера.
Вы не говорите, хотите ли вы установить перехват в "живой" среде или только для временного тестирования. Если вы хотите временно протестировать, вы можете сделать следующие шаги:
- Приостановить очередь печати (верхний снимок экрана, ниже).
- Дополнительно: измените драйвер с ESC/POS на, скажем, PostScript или Microsoft XPS. Сделайте это на той же вкладке "Дополнительно" в диалоговом окне свойств принтера, как указано выше. (нижний скриншот справа внизу).
- Распечатать.
- Получить спулфил, ожидающий в каталоге спула. В Windows 8 это по умолчанию C: \ Windows \ System32 \ spool \ PRINTERS. Спулфил назван
NNNNN.spl
где NNNNN - номер текущего задания на печать. - Проанализируйте данные 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