Delphi World - Как указать размер страницы не используя TPrinterSetupDialog
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Как указать размер страницы не используя TPrinterSetupDialog

Автор: Адександр Герцог

- Мы, интердевочки, - девочки, работающие в Интернете. Дружок, иди сюда, я помогу тебе, я научу тебя правильно пользоваться твоим Пентиумом. Поиграй со мной в твои игры... Вот диск твой становится жестким. Ты копишь информацию... Оооо! начинает работать твой струйный принтер!...
- Простите, а что, дома вам этого не хватает?
- Дома мой муж работает со мной в режиме пользователя.
- Ничего, зато есть гарантия от любого вируса!

Я использую следующий код. Уже с год как работает.


var
  Device : array[0..cchDeviceName-1] of Char;
  Driver : array[0..(MAX_PATH-1)] of Char;
  Port : array[0..32] of Char;
  hDMode : THandle;
  pDMode : PDevMode;
  sDev : array[0..32] of Char;
begin
  Printer.GetPrinter(Device,Driver,Port,hDMode);
  if hDMode <> 0 then
  begin
    pDMode :=GlobalLock(hDMode);
    if pDMode <> nil then
    begin
      pdMode^.dmOrientation :=2;
      // landscape
      pdMode^.dmPaperSize := DMPAPER_A3
      // (см. win32.hlp DEVMODE)
      GlobalUnlock(hDMode);
    end;
  end;
end;

Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования