Как печатать на принтере dotmatrix с помощью escp
Прежде чем все скажут мне, что я сумасшедший, я знаю. Кто в здравом уме будет использовать матричный принтер в 2020 году? Ну, так и есть! Мы пытаемся использовать его для печати информации о доставке для транспортных компаний, которые не имеют цифровой системы управления своими бронированиями и все еще используют рукописные многослойные документы.
То, что я сделал, - это напечатал наши собственные документы в виде непрерывной многослойной формы для печати на матричном принтере.
Принтер, который мы пытаемся использовать, - это Oki Microline 720 Plus. Вот ссылка на руководство пользователя https://www.oki.com/printing/download/42113905EE2_ML720P_PH_63088.pdf?id=42113905EE
Мы настроили его с установленной сетевой картой Oki LAN7130E.
мы используем продукт под названием printnode для отправки заданий печати из нашей ERP на наши принтеры. узел печати поддерживает печать RAW с использованием строки в кодировке Base64. мы успешно использовали этот подход для печати на принтерах Zebra Lable с использованием ZPL без каких-либо проблем, поэтому я не думаю, что это проблема. вот ссылка на их документацию https://www.printnode.com/en/docs/what-is-raw-printing и https://www.printnode.com/en/docs/api/curl#printjob-creating
клиент узла печати работает на экземпляре Windows Server 2012 R2 с установленным драйвером класса OKI Dot-Matrix 9Pin ESC/P. Я могу печатать из текстового документа на сервере нормально.
когда я пытаюсь печатать с помощью команд ESCP в виде ASCII или шестнадцатеричного кода, на принтере ничего не происходит. это я кодировал как Base64 и отправлял с помощью API PrintNode. все, что я получил в очереди печати на сервере, отправляется на принтер.
ASCII
ESC @ ESC 0 ESC 1 10 ESC Q 75 This is a Test Print Wow! CR LF FF ESC @
Шестнадцатиричный
1B 40 1B 30 1B 6C 31 30 1B 51 37 35 54 68 69 73 20 69 73 20 61 20 54 65 73 74 20 50 72 69 6e 74 20 57 6f 77 21 0D 0A 0C 1B 40
Как я могу проверить вышеуказанный необработанный код непосредственно с сервера или я делаю простую ошибку
документ, на который я ссылался для приведенного выше кода, является как руководством пользователя Oki, так и следующим документом из EPSOM. https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwjDmPLf4e_qAhXRpOkKHSSVDbsqfjacegqiahab&url=https%3A%2F%2Ffiles.support.epson.com%2Fpdf%2Fgeneral%2Fescp2ref.pdf&usg=AOvVaw2-85x1sH-SYp8YNzuqM7cg
Что я уже пробовал:
Я попытался настроить принтер на виртуальной машине windows 7 и использовать VS2008 для печати данных непосредственно на принтер в виде строки. все, что я получаю, - это напечатанная строка.
Теперь Я Действительно Застрял!
Заранее благодарю за любую оказанную помощь. если я смогу заставить это работать, то сэкономлю до 3 человеко-часов в день из-за того, что мне не придется писать все эти документы от руки.
Richard MacCutchan
Вышеприведенные ASCII и hex не совпадают. как вы его преобразуете?
0x01AA
То, что Ричард упоминает в комментарии aobove, сравните вашу шестнадцатеричную последовательность с текстом, который вы предполагаете отправить. Только небольшой фрагмент:
1B ESC
40 '@'
1B ESC
30 '0'
1B ESC
6C 'l'
31 '1'
30 '0'
1B ESC
51 'Q'
37 '7'
35 '5'
54 'Т'
68 'h'
69 'я'
73 's'
20 место
JANeets
моя ошибка. они оба были собраны вместе по отдельности. Я не использовал инструмент для его преобразования. Я обновил эти два раздела, чтобы сделать их из одного и того же упражнения.
Я использовал команды принтера Epson FX в руководстве по принтерам ML720/721 Plus, связанном с моим вопросом.