Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.17;
Скачать: CL | DM;

Вниз

Опять принтер на 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 вся ветка

Текущий архив: 2006.09.17;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.064 c
15-1156599693
Heroes
2006-08-26 17:41
2006.09.17
Heroes of Might and Magic V прохождение


2-1156308815
graf
2006-08-23 08:53
2006.09.17
AVI из нескольких bmp или jpg


15-1156925866
Зм1й
2006-08-30 12:17
2006.09.17
Проблемка с телефоном


8-1141624431
Alp
2006-03-06 08:53
2006.09.17
Шифрование рисунков


1-1154366246
Варяг
2006-07-31 21:17
2006.09.17
Форма без границ и заголовка