Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> печать_на_чековый_принтер_из_Java 
:(
    Опции темы
Tireks
Дата 18.1.2014, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 13.8.2007

Репутация: нет
Всего: нет



Здравствуйте.

Есть термопринтер vkp80, на который необходимо выводить печать через com порт.
Вот мануал по коммандам принтера: http://files.mail.ru/C153ED9FAAC14C1C98AF43CB3F2108E3

в мануле есть пример печати:

{set notch distance}
$1D $E7 $00 $00
{print text}
TICKET 1 $0A FIRST LINE $0A SECOND LINE $0A
{cut aligment}
$1D $F8
{cut}
$1B $69

Вот кусок кода, спомощью которого подключаюсь к принтеру и пвтаюсь печатать:

Код

import jssc.SerialPort;
    import jssc.SerialPortException;

    public class Test {

    public static void main(String[] args) {

    SerialPort serialPort = new SerialPort("/dev/ttyS0");

    try {

    serialPort.openPort();

        serialPort.setParams(SerialPort.BAUDRATE_19200,
                        SerialPort.DATABITS_8,
                        SerialPort.STOPBITS_1,
                        SerialPort.PARITY_NONE);

    serialPort.writeBytes("TICKET 1, 0x0A, FIRST LINE, 0x0A, SECOND LINE, 0x0A".getBytes());

    serialPort.closePort();
    }
    catch (SerialPortException ex) {
    System.out.println(ex);
    }
    }
    }



Насколько я понял принтер получает комманды виде шестнадцетиричного кода.
В моём случае принтер печатает сплошником строчку TICKET 1, 0x0A, FIRST LINE, 0x0A, SECOND LINE, 0x0A без форматирования.

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


PM MAIL   Вверх
Mirkes
Дата 21.1.2014, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 586
Регистрация: 18.8.2011
Где: Красноярск

Репутация: 7
Всего: 17



Цитата(Tireks @  18.1.2014,  23:33 Найти цитируемый пост)
 serialPort.writeBytes("TICKET 1, 0x0A, FIRST LINE, 0x0A, SECOND LINE, 0x0A".getBytes());

Вообще-то это гениально! Вы ему сунули текстовую строку, он ее напечатал.
Если нужно форматирование, то 0x0A должно быть байтом а не элементом текстовой строки smile
Думаю можно так
Код

serialPort.writeBytes("TICKET 1 \n FIRST LINE  \n SECOND LINE \n".getBytes());

Скорее всего запятые не нужны, но тут я могу ошибаться.
А вот конец строки нужно передавать кодом, а не текстовым представлением кода smile


--------------------
Mirkes
PM MAIL   Вверх
Tireks
Дата 2.2.2014, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 13.8.2007

Репутация: нет
Всего: нет




Да, понял. ВОт так работает:
Код

byte[] b = new byte[]{0x0A};
serialPort.writeBytes(b);

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0822 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.