Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Печать в Delphi, Рисование на канве 
:(
    Опции темы
AndreyANM
Дата 21.4.2006, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 4.1.2006

Репутация: нет
Всего: нет



Возникла у меня необходимость печати.
В общем у меня с этим никаких проблем нет, но есть одна неточность: в общем у меня дома довольно старенький принтер, и соответвенно разрешение печати у него маленькое. На этом принтере я проверял размеры того, что я печатаю, чтобы они были соответствующими. Ну а вот собственно неувязка: когда я запускаю программу на своем компе то размер канвы для рисования отличается от размера канвы на другом компьютере. Скорее всего это связано с тем, что разрешение печати на принтерах разное (например струйный и лазерный принтер). Я правда не пробовал печатать, но смею предположить, что на разных принтерах мои документы будут печататься не одинаково (на принтерах с большим разрешением они будут мельче, чем на принтерах с меньшим разр.). Так вот, можно ли изменить разрешение (размер канвы) или нужно все координаты прописывать относительно краев страницы. 
PM MAIL   Вверх
x77
Дата 21.4.2006, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1255
Регистрация: 25.3.2002

Репутация: 19
Всего: 22



dx := GetDeviceCaps(Printer.Handle, LOGPIXELSX);
dy := GetDeviceCaps(Printer.Handle, LOGPIXELSY);

- это и будет разрешением принтера (т.е. шириной и высотой его канвы (при его текущих настройках). и вот по этим размерам можно масштабировать свой документ.
 


--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
Snowy
Дата 21.4.2006, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Можно создать временную канву фиксированного размера.
А потом сделать StretchDraw на канву принтера.
В этом случае будет все равно, какой размер у принтера. StretchDraw подгонит размер под канву принтера. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0801 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.