svininykh / openbravoposru

Automatically exported from code.google.com/p/openbravoposru
0 stars 0 forks source link

Star Micronics TSP 143 (~TSP 100) - печать кириллицы через последовательный порт (COM) #193

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Печать кириллицы в режиме STAR вызывает 
ошибки.

По умолчанию печать кириллицы выдает 
только ??? знаки вопроса. Установка 
конвертера unicode>cp1251 дает чек как на первой 
фотке.

Чтобы пофиксить, комментируем строку с 
выбором 437 code page. Взамен подставляем строку 
из файла UnicodeTranslator1251cyr.

    public byte[] getCodeTable() {
        //return new byte[] {0x1B, 0x1D, 0x74, 0x01}; // Select code page 437
         return ESCPOS.CODE_TABLE_13;
    }

Результат на второй фотке :)

Original issue reported on code.google.com by giichmob...@gmail.com on 25 Dec 2011 at 11:12

Attachments:

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
Совсем забыл, конвертер можно взять из 
упомянутого файла. Либо из этой темы:

http://code.google.com/p/openbravoposru/issues/detail?id=4

Original comment by giichmob...@gmail.com on 25 Dec 2011 at 11:15

GoogleCodeExporter commented 9 years ago
Перед этим в настройках драйвера нужно 
выбрать кодировку 1251.

Original comment by giichmob...@gmail.com on 25 Dec 2011 at 11:19

Attachments:

GoogleCodeExporter commented 9 years ago
Спасибо за проделанную работу в 
особенности за инструкцию, а то я всё не мог 
понять почему у людей принтеры этой марки с 
кириллицей не работают, оказывается ещё 
надо в драйвере выставить настройки.

В код внёс изменения r229 и r230 в виде 
добавления в панель конфигурации нового 
типа принтера "star1251cyr". В будущем надеюсь 
сделать отдельную вкладку в конфигураторе 
для выбора кодировки принтера. Кстати 
может кто знает как сделать выпадающий 
список кодировок для подстановки в String class 
getBytes(Charset charset)?

Original comment by svinin...@gmail.com on 26 Dec 2011 at 4:12

GoogleCodeExporter commented 9 years ago
Что-то Mercurial не поддерживает короткие 
ссылки. Попробуйте посмотреть изменения в 
ra63b69c4b10d и r2387f1c1859b

Original comment by svinin...@gmail.com on 26 Dec 2011 at 4:15

GoogleCodeExporter commented 9 years ago
в UnicodeTranslatorStar1251Cyr нужно добавить конвертер:

            case '\u0410': return (byte) 0xC0;// A
            case '\u0411': return (byte) 0xC1;// Б
            case '\u0412': return (byte) 0xC2;// В
            case '\u0413': return (byte) 0xC3;// Г 

и т.д. После добавления все ок. Насчет 
выпадающего списка не знаю, т.к. я далеко не 
java-программист, но попробую посмотреть 
авось что получится.

А то снова вопросы печатает. После 
добавления всё ок. 

Original comment by giichmob...@gmail.com on 26 Dec 2011 at 7:29

Attachments:

GoogleCodeExporter commented 9 years ago
Мда, туплю что-то с утра. Чек после 
добавления "конвертера" выглядит вот так, 
все ок:

Original comment by giichmob...@gmail.com on 26 Dec 2011 at 7:41

Attachments:

GoogleCodeExporter commented 9 years ago
Для реализации выбора кодировок в 
настройках, я предлагаю использовать 
конвертер вот такого вида:

    public final byte[] convertString(String sConvert) {
        ByteArrayOutputStream lineout = new ByteArrayOutputStream();
        try {
            lineout.write(sConvert.getBytes("Cp1251"));
        } catch (IOException ex) {
        }
        return lineout.toByteArray();
    }

Значение "Cp1251", как раз и можно будет 
выбрать в настройках. Вот список всех 
поддерживаемых в Java кодировок 
http://docs.oracle.com/javase/1.5.0/docs/guide/intl/encoding.doc.html 

Сейчас я добавил в UnicodeTranslatorStar1251Cyr такого 
вида конвертер(смотрите r8120a3a0789f). Его я уже 
использовал для поддержки китайских 
иероглифов теперь хочу попробовать 
использовать для кириллицы. Попрошу 
обновится из репозитария и протестировать 
новый код(если не пойдёт верну конвертер в 
виде подстановок).

Original comment by svinin...@gmail.com on 26 Dec 2011 at 11:05

GoogleCodeExporter commented 9 years ago
Все отлично заработало. 

Original comment by giichmob...@gmail.com on 26 Dec 2011 at 12:05

GoogleCodeExporter commented 9 years ago
Могу еще проверить для 866 и вообще для любой 
другой кодировки, благо драйвер позволяет 
сменить

Original comment by giichmob...@gmail.com on 26 Dec 2011 at 12:06

GoogleCodeExporter commented 9 years ago
Было-бы очень неплохо проверить работу 
через таблицы Java для всех вариантов 
киррилицы.

Original comment by svinin...@gmail.com on 27 Dec 2011 at 9:37