Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
15-1156374725
Rule
2006-08-24 03:12
2006.09.17
Наконецто перебрался в Москву !!!


15-1156456327
SkyRanger
2006-08-25 01:52
2006.09.17
Онлайн игры и истиная сущность человека


2-1156446205
тыкв
2006-08-24 23:03
2006.09.17
and двух word


1-1155086637
MarshalM
2006-08-09 05:23
2006.09.17
Помогите по копированию папки


15-1156705716
Nic
2006-08-27 23:08
2006.09.17
Майл-счётчик





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский