Я пытаюсь распечатать необработанные данные ASCII к термическому принтеру. Я делаю это при помощи этого примера кода: http://support.microsoft.com/kb/322091, но мой принтер всегда печатает только один символ и это, только когда я нажимаю кнопку перевода формата. Если я распечатаю что-то с блокнотом, то принтер сделает перевод формата автоматически, но не печатая текста.
Принтер подключен через usb по lpt2usb адаптеру, и Windows 7 использует "Дженерик-> Универсальный / текст Только" драйвер.
Кто-либо знает то, что идет не так, как надо? Как возможно распечатать некоторые слова и сделать некоторые переводы формата? Есть ли некоторые управляющие символы, которые я должен отправить? И если да: Как я отправляю их?
Отредактируйте 14.04.2010 21:51
Мой код (C#) похож на это:
PrinterSettings s = new PrinterSettings();
s.PrinterName = "Generic / Text Only";
RawPrinterHelper.SendStringToPrinter(s.PrinterName, "Test");
Этот код возвратит "T" после того, как я нажал кнопку перевода формата (Эта litte черная кнопка здесь: swissmania.ch/images/935-151.jpg - извините, недостаточно репутации двух гиперссылок)
Отредактируйте 15.04.2010 16:56
Я использую теперь форму кода здесь: c-sharpcorner.com/UploadFile/johnodonell/PrintingDirectlytothePrinter11222005001207AM/PrintingDirectlytothePrinter.aspx
Я изменил его немного, что я могу использовать следующий код:
byte[] toSend;
// 10 = line feed
// 13 carriage return/form feed
toSend = new byte[1] { 13 };
PrintDirect.WritePrinter(lhPrinter, toSend, toSend.Length, ref pcWritten);
Выполнение этого кода имеет тот же эффект как нажатие кнопки перевода формата, это хорошо работает!
Но код как это все еще не работает:
byte[] toSend;
// 10 = line feed
// 13 carriage return/form feed
toSend = new byte[2] { 66, 67 };
PrintDirect.WritePrinter(lhPrinter, toSend, toSend.Length, ref pcWritten);
Это распечатает просто "B", но я ожидаю "BC" и после выполнения любого кода, я должен повторно подключить USB-кабель, чтобы заставить его работать agian. Какие-либо идеи?
Хорошо, причина всего этого в том, что я использую адаптер потому что на моем компьютере нет старого порта lpt. Я скопировал свое приложение на старый компьютер под управлением Windows XP, и все работает нормально.
Теперь я должен надеяться, что некоторые другие lpt2usb adaters, которые я купил, работают правильно.
Редактировать 20.04.2010
С другим адаптером lpt2usb теперь все работает нормально. Если кто-то заинтересован во всем коде, который я использую сейчас, свяжитесь со мной или прокомментируйте здесь.