Распечатайте необработанные данные к термическому принтеру с помощью.NET

Я пытаюсь распечатать необработанные данные 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. Какие-либо идеи?

6
задан Thomas Kekeisen 15 April 2010 в 15:02
поделиться

1 ответ

Хорошо, причина всего этого в том, что я использую адаптер потому что на моем компьютере нет старого порта lpt. Я скопировал свое приложение на старый компьютер под управлением Windows XP, и все работает нормально.

Теперь я должен надеяться, что некоторые другие lpt2usb adaters, которые я купил, работают правильно.

Редактировать 20.04.2010

С другим адаптером lpt2usb теперь все работает нормально. Если кто-то заинтересован во всем коде, который я использую сейчас, свяжитесь со мной или прокомментируйте здесь.

5
ответ дан 9 December 2019 в 22:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: