Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС
выпущен 4 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Как изменить размер страницы при печати

Один из способов, это перед началом печати изменить структуру devicemode у принтера.

Другие настройки, которые можно поменять, смотрите в TDEVMODE в хелпе Delphi 1.02 или DEVMODE в Delphi 2.01.

Следующий пример демонстрирует изменение размера печатаемой страницы:


 procedure TForm1.Button1Click(Sender: TObject);
 var
   Device: array[0..255] of char;
   Driver: array[0..255] of char;
   Port: array[0..255] of char;
   hDMode: THandle;
   PDMode: PDEVMODE;
 begin
   Printer.PrinterIndex := Printer.PrinterIndex;
   Printer.GetPrinter(Device, Driver, Port, hDMode);
   if hDMode <> 0 then begin
     pDMode := GlobalLock(hDMode);
     if pDMode <> nil then begin
 
      {Set to legal}
       pDMode^.dmFields := pDMode^.dmFields or dm_PaperSize;
       pDMode^.dmPaperSize := DMPAPER_LEGAL;
 
      {Set to custom size}
       pDMode^.dmFields := pDMode^.dmFields or
         DM_PAPERSIZE or
         DM_PAPERWIDTH or
         DM_PAPERLENGTH;
       pDMode^.dmPaperSize := DMPAPER_USER;
       pDMode^.dmPaperWidth := 100 {SomeValueInTenthsOfAMillimeter};
       pDMode^.dmPaperLength := 100 {SomeValueInTenthsOfAMillimeter};
 
      {Set the bin to use}
       pDMode^.dmFields := pDMode^.dmFields or DMBIN_MANUAL;
       pDMode^.dmDefaultSource := DMBIN_MANUAL;
 
       GlobalUnlock(hDMode);
     end;
   end;
   Printer.PrinterIndex := Printer.PrinterIndex;
   Printer.BeginDoc;
   Printer.Canvas.TextOut(100, 100, 'Test 1');
   Printer.EndDoc;
 end;
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS