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

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

Как установить размер страницы при печати через Printer [D6, WinXP]


Monax ©   (2006-05-14 13:10:00) 

Кто знает, подскажите. Печатаю через Printer. Мне нужно, чтобы объекты четко попадали в нужное место, но гуляющий по всему инету пример меняет размер страницы только на виртуальном принтере, а на реальном нет. Если задаеш пользовательский формат в тупую, то принтер оставляет поля и точное позиционирование не получается.

Что не так?

 Printer.PrinterIndex := Printer.PrinterIndex;
 Printer.GetPrinter(Device, Driver, Port, hDMode);
 if hDMode <> 0 then begin
   pDMode := GlobalLock(hDMode);
   if pDMode <> nil then begin
     pDMode^.dmFields := pDMode^.dmFields or
                         DM_PAPERSIZE or
                         DM_PAPERWIDTHor
                         DM_PAPERLENGTH;
     pDMode^.dmPaperSize   := DMPAPER_USER;
     pDMode^.dmPaperWidth  := Round(10*PaperWidth);
     pDMode^.dmPaperLength := Round(10*PaperLength);
     GlobalUnlock(hDMode);
   end;
 end;
 Printer.PrinterIndex := Printer.PrinterIndex;


REA   (2006-05-15 10:43:00) [1]

Или SetViewportOrgEx


REA   (2006-05-15 10:39:00) [2]

>чтобы объекты четко попадали в нужное место
рисуй в это место


Наверх

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