Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Проблема с кодировкой текста


Автор: ДобренькийПапаша 8.6.2011, 11:17
Есть принтер. У него есть параметр CharacterSet, который может принимать только значение 999, что означает следующее:
 The Windows ANSI character set. The value of this constant is 999. This is exactly the same as the Windows code page 1252.

Когда я отсылаю на принтер команду  _printer.PrintNormal(CurrentStation, text); где text это string равный тексту из текстобкса, причём текст английский - то всё печатается нормально, а если русский - то абракадабра.

Мне сказали, что прошивка стоит такая, что русские символы принтер печатает. Проверено.

Что делать с русским текстом? Во что его кодировать? Тут надод поработать Encoding'ом. Но пока мне не ясно, что нужно сделать.
 

Автор: jonie 8.6.2011, 12:00
сдалась вам печать в терминальном режиме... Печатайте растром

Автор: ДобренькийПапаша 8.6.2011, 12:40
Ээээ, чего?)))
Я в этом нифига не понимаю. У меня термопринтер с бумагой на 60мм. Работаю с ним через POS for .NET, который кушает OPOS драйвер для этого принтера.

Автор: ДобренькийПапаша 9.6.2011, 09:59
Вообще, это должно было помочь.
Код

string str = " Меня зовут Абракадабра, привет Мир! Ленин жив!";
                Encoding win1252 = Encoding.GetEncoding("windows-1252");
                byte[] srcBytes = win1252.GetBytes(str);
                byte[] dstBytes = Encoding.Convert(Encoding.Default, win1252, srcBytes);
                string convertedStr = win1252.GetString(dstBytes);
               
                 _printer.PrintNormal(CurrentStation, convertedStr);


Но, один чёрт, выводит знаки вопросов.

Автор: ДобренькийПапаша 9.6.2011, 21:05
Цитата(jonie @  8.6.2011,  12:00 Найти цитируемый пост)
Печатайте растром 


Вы имели ввиду битмап? Это под каждую букву нужен рисунок или можно подавать что-то типа байтового массива полученного из метода типа Text.Draw() из GDI?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)