Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

программно сменить формат бумаги [D6]


d_oleg ©   (2003-01-30 11:51:00) 

задача такая: нужно один документ печатать, скажем, на A4, другой - на A3. Как в свойствах принтера можно программно поменять формат бумаги? Репортеры я не использую.


REA   (2003-01-30 14:16:00) [1]

Как программно сменить ориентацию... хм. только хирургически.


stone   (2003-01-30 12:47:00) [2]

2 Chubais © (30.01.03 12:46)

Мда, действительно, что то я не то сморозил :)))


Chubais   (2003-01-30 12:46:00) [3]


> stone © (30.01.03 12:13)

гыыы
а причем здеся ориентация?


REA   (2003-01-30 12:14:00) [4]

The DocumentProperties function retrieves or modifies printer initialization information or displays a printer-configuration dialog box for the specified printer.

Использовать типа такого (выдержка из исходников)
возможно можно как то и проще:

if OpenPrinter(ADevice, FPrinterHandle, nil) then
begin
if DeviceMode = 0 then // тут у них может быть переменная
// класса причем private - не добраться до нее, поэтому
//наверно можно через procedure GetPrinter

begin
DeviceMode := GlobalAlloc(GHND,
DocumentProperties(0, FPrinterHandle, ADevice, StubDevMode,
StubDevMode, 0));
if DeviceMode <> 0 then
begin
DevMode := GlobalLock(DeviceMode);
if DocumentProperties(0, FPrinterHandle, ADevice, DevMode^,
DevMode^, DM_OUT_BUFFER) < 0 then
begin
GlobalUnlock(DeviceMode);
GlobalFree(DeviceMode);
DeviceMode := 0;
end
end;
end;
if DeviceMode <> 0 then
SetPrinterCapabilities(DevMode^.dmFields);
end;


stone   (2003-01-30 12:13:00) [5]

var
Printer: TPrinter;

procedure TForm1.PortraitClick(Sender: TObject);
begin
Printer.Orientation := poPortrait;
end;

procedure TForm1.LandscapeClick(Sender: TObject);
begin
Printer.Orientation := poLandscape;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо