Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
КодеКорешь   (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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.041 c
1-1125495154
Erik1
2005-08-31 17:32
2005.09.25
Вызов API функции после CoInitializate?


4-1123009065
Михаил(Киров)
2005-08-02 22:57
2005.09.25
RegisterHotKey


1-1125670203
VadimX
2005-09-02 18:10
2005.09.25
Странное поведение IDE отладчика


3-1123832912
AloneAli
2005-08-12 11:48
2005.09.25
Не могу в DBGridEh сделать выбор из другой таблицы в виде ComboBo


11-1107213647
Sphinxx
2005-02-01 02:20
2005.09.25
Создание компонент runtime





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский