Форум: "WinAPI";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];
ВнизОпять принтер на RS232... Найти похожие ветки
← →
ChainikDenis © (2006-05-17 20:08) [0]Научился отправлять управляющие коды в принтер, а вот ответ получить не удается...
Делаю так:
procedure TForm1.Button7Click(Sender: TObject);
var PrnHandle: THandle;
var PrnInfo: PPrinterInfo2;
var pcbNeeded,dwtmp: DWord;
var DocInfo : TDOCINFO1;
var TxDprn,RxDprn: array[0..255] of byte;
begin
TxDprn[0] := $1b;
TxDprn[1] := $76;
if winspool.OpenPrinter(PChar(PrinterName), PrnHandle, nil) then begin
DocInfo.pDocName := "Test";
DocInfo.pOutputFile := nil;
DocInfo.pDatatype := "RAW";
if winspool.StartDocPrinter(PrnHandle,1,@DocInfo) = 0 then
ShowMessage(SysErrorMessage(GetLastError));
if not winspool.WritePrinter(PrnHandle, @TxDprn, 2, dwtmp) then
ShowMessage(SysErrorMessage(GetLastError));
if not winspool.EndDocPrinter(PrnHandle) then
ShowMessage(SysErrorMessage(GetLastError));
if not winspool.ClosePrinter(PrnHandle) then
ShowMessage(SysErrorMessage(GetLastError));
end else ShowMessage("OpenPrinter:" + SysErrorMessage(GetLastError));
if winspool.OpenPrinter(PChar(PrinterName), PrnHandle, nil) then begin
if not winspool.ReadPrinter(PrnHandle, @RxDprn, 256, dwtmp) then
ShowMessage("ReadPrinter:" + SysErrorMessage(GetLastError));
if not winspool.ClosePrinter(PrnHandle) then
ShowMessage("ClosePrinter:" + SysErrorMessage(GetLastError));
end;
end;
Данные в принтер уходят и он отвечает, а вот функция ReadPrinter выдает ошибку, что по дукоментации означает что принтер не может работать в bi-directional режиме.
Как быть? Может поднастроить чего надо?
← →
tesseract © (2006-05-17 21:04) [1]
> Как быть? Может поднастроить чего надо?
А кто вам сказал, что принтер(точнее) должен отвечать на readprinter????
особенно если драйвер написан по остаточному принципу (по моей практике все нормальные производители комплектуют свои принтеры dll с обёрткой над языком).
Что за принтер хоть, опыт геммороя с ними есть.
← →
ChainikDenis © (2006-05-17 22:43) [2]2 tesseract
Custom TPTCM60.
Хороший вроде, да что-то через ОСь никак общаться не заставлю..
Отвечать-то он должен естественно не на readprinter, а на управляющие коды которые я в него шлю. Например $1b, $76 - бапрос байта состояния. Он собственно и отвечает, да похоже драйвер его ответы игнорирует и соответственно на readprinter мне нифига, кроме ошибки, не выдает...
Письмо в Custom написал - жду....
← →
vodvorezlaya (2006-05-18 09:31) [3]
> Научился отправлять управляющие коды в принтер, а вот ответ
> получить не удается...
Подскажи как ты отправляешь на СОМ порт по Тх данные с примером плиз. Я тут новичёк.
← →
tesseract © (2006-05-18 09:41) [4]
> Он собственно и отвечает, да похоже драйвер его ответы игнорирует
> и соответственно на readprinter мне нифига, кроме ошибки,
> не выдает.
Ты управляющие коды принтера посылаешь драйверу ?:-))))))))
Их надо напрямую в принтер посылать :-)))) минуя драйвер - тогда ответит.
← →
ChainikDenis © (2006-05-18 11:00) [5]Удалено модератором
Примечание: Выражения выбираем
← →
tesseract © (2006-05-18 11:17) [6]
> Драйвер может транслировать данные в принтер. Для этого
> есть функция WritePrinter. Инициализацию главное правильно
> сделать.
возможно в случае COM это и получиться.
Но вот в случае с lpt - почему-то не работает или точнее не всегда работает, твой случай не исключение.
Ни фига я не тёмный. Писал язык EZPL (GODEX) +Свой рендеринг штрихкодов для него.
Далеко не все драйверы могут транслировать данные в принтер.
> портом работать я использую библиотеку PComm от moxa (http:
> //www.moxa.com).
у меня свой компонент.
← →
ChainikDenis © (2006-05-18 18:37) [7]Короче запарился я с этим принтером.
От производителся не ответа не привета, дистрибуторы от моих вопросов все попрятались.
Видать и правда придется напрямую ручками данные засылать в принтер.
А жать как бы не плохо было всеми преимуществами GDI попользоваться....
← →
tesseract © (2006-05-19 10:37) [8]
> Видать и правда придется напрямую ручками данные засылать
> в принтер.
Думаешь у меня такой идеи не было, но так же как и в твоём случае прошла :-).
Для полного понимания рекомендую пробить драйвер :
http://www.hhdsoftware.com/sermon.html
отличный моник.
> Удалено модераторомПримечание: Выражения выбираем
вроде ничего такого
← →
ChainikDenis © (2006-05-19 12:22) [9]2 tesseract
Видать модератор не в духе был..
Слушай, я перевел принтер в графический режим и гоню в него байты. Байты формирую их массива TBitmap.Canvas.Pixels. Предварительно я на этом битмапе свой чер распечатываю. Выводится нормально, но такое ощущение что в черновом режиме - как-то блекло больно. Хотя настройки принтера - HighQuality.
А когда через драфвер печатал на канве принтера качество было получше.
Не сталкивался?
← →
tesseract © (2006-05-19 17:10) [10]
> Предварительно я на этом битмапе свой чер распечатываю.
> Выводится нормально, но такое ощущение что в черновом режиме
> - как-то блекло больно. Хотя настройки принтера - HighQuality.
>
В принципе надо повысить яркость. Причём она может сбрасываться для каждой этикетки.
> Хотя настройки принтера - HighQuality.
В смысле highquality ? Разрешение у него что-ли меняется?
А может краска закончилась :-)))))
← →
ChainikDenis © (2006-05-19 18:22) [11]Принтер-то - термо! Какая нафик краска...
Там в ностойках есть опции Quality/Speed - т.е. либо быстро печатать, либо медленно, но качественно.
Подозреваю что бумага отстойная...
← →
tesseract © (2006-05-19 21:51) [12]
> Принтер-то - термо! Какая нафик краска...
:-)) - читаем смайлы.
> Там в ностойках есть опции Quality/Speed - т.е. либо быстро
> печатать, либо медленно, но качественно.
В настойках чего ? драйвера?, фтопку его.
Хотя нет качаем sermon и изучаем, что принтер в порт пишет.
Не думай что производитель озаботиться точным соотвествием документации и реальными особенностями работы.
У термопринетров как правило скорость/нагрев не зависят друг от друга.
В своей мусорке про Custom вообще ничего не нашёл. Какие хоть языки держит?
> Подозреваю что бумага отстойная...
GAP не видит? если не мигает и бумагой не сучит туда-сюда - бумага нормальная. Надо нагрев головки увеличить. Или с рендерингом что-то не то.
распечатй жирный круг и посмотри как оно.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.043 c