Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.25;
Скачать: CL | DM;

Вниз

кКак установить для выбранного принтер новый формат бумаги   Найти похожие ветки 

 
КодеКорешь   (2005-08-01 14:13) [0]

Как установить для выбранного принтер новый формат бумаги.
Вот с помощью GetDeviceCaps можно получить вертикальный и горизонтальный размер бумаги в мм, а как установит новые размеры бумаги для выбранного принтера?


 
Seeker ©   (2005-08-01 15:41) [1]

так

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;

или так
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;
end;



 
КодеКорешь   (2005-08-01 17:02) [2]

насколькая понял эти параметры меняются только для текущей копии объекта принтера?



Страницы: 1 вся ветка

Текущий архив: 2005.09.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.033 c
14-1125824649
KilkennyCat
2005-09-04 13:04
2005.09.25
4 сентября. С Днем рождения!


3-1123748691
Nilov Serge
2005-08-11 12:24
2005.09.25
из Delphi получить все параметры процедуры MsSql-сервера


14-1125427940
SpecLab
2005-08-30 22:52
2005.09.25
Программирование графики в Windows 95...


3-1123963760
redlord
2005-08-14 00:09
2005.09.25
не соответствие типа поля и данных (Asdatetime)


4-1122990528
kami
2005-08-02 17:48
2005.09.25
Скриншот с .ani-курсором