Выбор лотка принтера для печати

Опубиковано: 17.07.2008 г., автор: , просмотров: 16257

Выбираем лоток принтера из delphi

Сегодня мы напишем с вами одну очень интересную процедуру, она позволяет выбирать лоток принтера, с помощью которого производится печать.
Первым делом в раздел uses добавляем модуль Printers, затем после ключевого слова public прописываем вот такую строчку

procedure ChangePrinterTray;

И нажимаем CTRL+SHIFT+C.
Delphi автоматически генерирует шаблон нашей процедуры, а полный её вид будет выглядеть следующим образом:

procedure TForm1.ChangePrinterTray;
var
ADevice, ADriver, APort: array [0..255] of Char;
ADeviceMode: THandle;
DevMode: PDeviceMode;
begin
Printer.GetPrinter( ADevice, ADriver, APort, ADeviceMode );
if ADeviceMode <> 0 then
begin
GlobalUnlock( ADeviceMode );
DevMode := GlobalLock( ADeviceMode ); //Получаем указатель на текущие параметры
DevMode.dmDefaultSource := DMBIN_AUTO; //Здесь указывается параметры относительно лотка (в данный момент указывается, что выбирается автоматически)
DevMode.dmFields := DevMode.dmFields or DM_DEFAULTSOURCE; //Указывает, что мы будем обновлять
GlobalUnlock( ADeviceMode );
Printer.SetPrinter( ADevice, ADriver, APort, ADeviceMode );//Применяем новые параметры
end;
end;

Буквально на днях хотел поэкспериментировать с кодом и проверить его на МФУ hp laserjet m2727 , но видать не судьба, у аппарата сломалась печка и его отдали в фирму по ремонту факсов

На этом все,... ДА чуть не забыл помимо автоматического выбора лотка существуют следующие параметры:

DMBIN_ONLYONE
DMBIN_MIDDLE
DMBIN_LOWER
DMBIN_MANUAL
DMBIN_ENVELOPE
DMBIN_ENVMANUAL
DMBIN_AUTO
DMBIN_TRACTOR
DMBIN_SMALLFMT
DMBIN_LARGEFMT
DMBIN_LARGECAPACITY
DMBIN_CASSETTE
DMBIN_FORMSOURCE

Вот сейчас действиельно все !!!

P.S. Огромное спасибо Павлу за присланный код данного примера.
Не забываем подписываться на бесплатную мультимедийную рассылку.
Форма для подписки расположена с права и с лева.
С уважением www.delphiexpert.ru



Похожие материалы

Последние из рубрики

дима 25 Dec 2008 в 00:00 #
чет я не понял што икак кидать и где прописывать:(((
григорий 17 Jul 2008 в 00:00 #
обана всем респект, как я замучился в поисках такой процедуры, спасибо
il2 17 Jul 2008 в 00:00 #
спасибо этот код мне пока не надо, но чувствую что вскорем будущем пригодиться

ОтменитьДобавить комментарий