2012-03-08 1 views
-1

У меня есть термопринтер Hengstler C56. Я долго пытался распечатать логотип с принтером. Но я не могу понять, как он терпит неудачу.Печать изображения в принтере квитанций с использованием C

Изображение, которое я пытаюсь напечатать, имеет * .bmp тип и 50x50. Принтер api написан на C, и принтер принимает неподписанный массив байтов в виде буфера записи.

Любые идеи для этого?

+0

У вас прочитайте [руководство для вашего принтера] (http://www.hengstler.com/en/products/shop.php?catID=1008)? Также не пытайтесь писать многоязычные исходные файлы: много ненужных неприятностей. – pmg

+0

Вы проверили [Руководство по набору команд эмуляции] (https://www.telpar.com/files/drivers_support/manuals/D-684-017-C56-EmulationCommandSet_31-Mar-2009.pdf)? В списке перечислены все необходимые команды. – nabulke

+0

Привет @pmg, я прочитал всю их документацию, и я отправил их по почте. но никакой помощи от этого. Я надеюсь, что кто-то здесь уже запрограммирован для того же принтера. что вы подразумеваете под многоязычным источником? – san

ответ

0

Если вы можете распечатать текст на этом принтере, отправив ему ASCII-символы по RS-232 или USB (это RS-232 через USB?), Я не читал все), а затем следуйте разделом 3.1.32 " GS & + [m] + [x] + [y1] + [y2] + [d1] .. [dn] Регистрация данных изображения «через» 3.1.34 GS '+ [m] + [n] Печать зарегистрированного изображения данных "документа« C-56 EMULATION COMMAND SET », чтобы правильно закодировать изображение логотипа, записать его в флэш-память устройства и распечатать его. Начните с некоторых простых изображений.

+0

Привет, Алекс, принтер подключен через USB-порт. Я могу печатать обычные текстовые файлы. но я застрял в кодировании изображений. любые четкие документы или образцы, которые я могу прочитать? – san

+1

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

1

Запись изображения # 1:

fwrite("\x1D\x26\x01\x01\x08\x00" "\x00\x66\x66\x00\x00\x42\x3C\x00", 
     1, 14, printer_stream); 

Печать изображения # 1 с двойной ширины и двойной высоты:

fwrite("\x1D\x27\x01\x03" 
     1, 4, printer_stream); 

Я пытался сделать что-то данные хороший

 
bit 7 6 5 4 3 2 1 0 
    .. .. .. .. .. .. .. .. 00 
    .. ## ## .. .. ## ## .. 66 
    .. ## ## .. .. ## ## .. 66 
    .. .. .. .. .. .. .. .. 00 
    .. .. .. .. .. .. .. .. 00 
    .. ## .. .. .. .. ## .. 42 
    .. .. ## ## ## ## .. .. 3C 
    .. .. .. .. .. .. .. .. 00 
+0

Nice приятель. один быстрый сомнение, 'printer_stream' является указателем на файл или открытым номером принтера? – san

+0

В примере 'printer_stream' является' FILE * ', открытым для записи/добавления. Если вы не можете писать на принтер с помощью 'FILE * ', вам необходимо адаптировать код. – pmg

 Смежные вопросы

  • Нет связанных вопросов^_^