Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблемы с печатью! Информации нет, помогите! [D7, WinXP]


Шоломицкий С. А. ©   (2006-11-25 13:50:00) 

Имеется принтер HP 9050.
В нём есть из того что мне нужно: нижний лоток, верхний лоток, лоток ручной подачи.
Мне очень надо уметь печатать с любого из этих трёх лотков.
Облазил весь интернет, нашёл единственный пример, который у меня никак не работат. Вот он:

var
 ADevice, ADriver, APort: array[0..255] of char;
 ADeviceMode: THandle;
 DevMode: PDevMode;
begin
 with Printer do
 begin
   GetPrinter(ADevice, ADriver, APort, ADeviceMode);
   SetPrinter(ADevice, ADriver, APort, 0);
   GetPrinter(ADevice, ADriver, APort, ADeviceMode);
   DevMode := GlobalLock(ADeviceMode);
   if not Assigned(DevMode) then
     ShowMessage('Не могу установить принтер')
   else
   begin
     with DevMode^ do
     begin
       dmDefaultSource := DMBIN_UPPER;
     end;
     GlobalUnlock(ADeviceMode);
     SetPrinter(ADevice, ADriver, APort, ADeviceMode);
   end;
 end;
 Printer.BeginDoc;
 Printer.Canvas.TextOut(50, 50, 'Печать из верхнего лотка');
 with DevMode^ do
 begin
   dmDefaultSource := DMBIN_LOWER;
 end;
 Printer.NewPageDC(DevMode);
 Printer.Canvas.TextOut(50, 50, 'Печать из нижнего лотка');
 Printer.EndDoc;


Заместо dmDefaultSource := DMBIN_LOWER;и dmDefaultSource := DMBIN_UPPER;можно подставлять цифры (как бы номер лотка).
Ставил самые разные, от 1 до 10..во всех случаях оба листа берутся из нижнего лотка!

Кстати, в коде есть вот это

procedure TPrinter.NewPageDC(DM: PDevMode);
begin
 CheckPrinting(True);
 EndPage(DC);
 if Assigned(DM) then
   ResetDC(DC, DM^);
 StartPage(DC);
 Inc(FPageNumber);
 Canvas.Refresh;
end;

Нашёл, что это нужно для изменеиня любых установок во время печати.

Короче, ничего не получается...
А надо очень...
Пожалуйста, помогите!!!!


Андрей Сенченко   (2006-11-26 13:10:00) [1]

Общественность заинтересована в принципе только двумя вещами из обширного списка "Что да как"
1. DM_DEFAULTSOURCE
2. Собственно как там там повешенье

... отсутствие ответа на 2й вопрос будет воспринято с пониманием.


Шоломицкий С. А.   (2006-11-26 00:17:00) [2]

Обязательно сообщу, что да как, но только в понедельник(


Leonid Troyanovsky   (2006-11-25 15:45:00) [3]


> Anatoly Podgoretsky ©   (25.11.06 15:33) [8]

> Не нас, а вас


Я уже на полдороги в Баден-Баден.

--
Regards, LVT.


Anatoly Podgoretsky   (2006-11-25 15:33:00) [4]

> Leonid Troyanovsky  (25.11.2006 15:29:07)  [7]

Не нас, а вас


Leonid Troyanovsky   (2006-11-25 15:29:00) [5]


> Anatoly Podgoretsky ©   (25.11.06 15:17) [6]

> Это можно сказать только после повешания.


Анатолий, нас могут заподозрить в заинтересованности.

--
Regards, LVT.


Anatoly Podgoretsky   (2006-11-25 15:17:00) [6]

> Leonid Troyanovsky  (25.11.2006 15:13:05)  [5]

Это можно сказать только после повешания.


Leonid Troyanovsky   (2006-11-25 15:13:00) [7]


> Шоломицкий С. А.   (25.11.06 15:10) [4]

> а во тесли нет...то можно вешаться прям((


Перед повешанием, все же, желательно
информировать общественность о срабатывании.
Для пользы будущих поколений, так сказать.

--
Regards, LVT.


Шоломицкий С. А.   (2006-11-25 15:10:00) [8]

Спасибо большое. Надеюсь сработает...
а во тесли нет...то можно вешаться прям((


Leonid Troyanovsky   (2006-11-25 14:19:00) [9]


> Шоломицкий С. А.   (25.11.06 14:11) [2]

> хотя данный вами код особо не отличается от того, что я
> написал..
> он вообще, в принципе, такой же(


Этот код, вообще-то, дал Peter Below.
Ну, а отличия, все же, заметны. Например:

dmFields := dmFields or DM_DEFAULTSOURCE;

Кста, Printer это из Printers.pas.

--
Regards, LVT.


Шоломицкий С. А.   (2006-11-25 14:11:00) [10]

спасибо..жалко я не на работе и не могу это проверить..
хотя данный вами код особо не отличается от того, что я написал..
он вообще, в принципе, такой же(


Leonid Troyanovsky   (2006-11-25 14:05:00) [11]


> Шоломицкий С. А.   (25.11.06 13:50)  

> Облазил весь интернет, нашёл единственный пример,


http://groups.google.com/group/borland.public.delphi.nativeapi.win32/msg/78ab555fb875269c

--
Regards, LVT.


Наверх

Титульная страница Поиск, карта сайта Написать письмо