WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Вывод на принтер сложного отчета.

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Вывод на принтер сложного отчета.
Bober опубликован 19-07-2001 06:58 MSK   Click Here to See the Profile for Bober   Click Here to Email Bober  
Существует необходимость распечатать достаточно сложную таблицу. OnDraw() не справляется, т.к. в ней (на мой взгляд) нельзя произвести четкую разбивку всего документа на страницы. Приходится переопределять OnPrint(), но в этом случае возникает зависимость от принтера - DPI у них разные. Таблица может красиво разместиться на странице при выборе лазерного принтера. А вот при выборе чего-нибудь древнего смещается, и ее поля обрезаются.
Можно, конечно, и это предусмотреть, но тогда функция OnPrint() становится уж совершенно нечитаемой.
Может есть более изящное решение? Ворованные продукты использовать мне нельзя. Может есть что-нибудь не очень дорогое и лицензионное? Либо свободно распространяемое.
Заранее большое спасибо.
OlegN опубликован 19-07-2001 14:33 MSK     Click Here to See the Profile for OlegN  Click Here to Email OlegN     
ПО УМОЛЧАНИЮ при создании PrintDC устанавливается режим отображения MM_TEXT
в этом режиме координаты в пикселях. И конечно при разных разрешениях тебе нужно все пересчитывать.
Но кто тебе мешает изменить
режим отображения (map mode) ?
Советую внимательно изучить
CDC::SetMapMode функцуию. В комбинации
с вызовами CDC::SetWindowExt и CDC::SetViewportExt можно нарисовать нужное
на любом девайсе с любым разрешением без пересчетов, ими займется GDI.
Единственное, что тебе нужно контролировать,
ето размер бумаги, и размер полей "мертвой зоны" у принтера. Они у каждой модели свои.
Bober опубликован 22-07-2001 09:56 MSK     Click Here to See the Profile for Bober  Click Here to Email Bober     
Спасибо OlegN!

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.