| 
| 
 | Вопрос # 5 055/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты!Вопрос следующий: имеется сформированная картинка в Image, картинка по размеру небольшая 420х260 пикселей.
 Необходимо ее напечатать на принтере, в нужном количестве.
 Вопрос, в следующем как правильно рассчитать масштаб печати?
 Необходимо разместить допустим 3 картинки в ширину и 5 по высоте страницы.
 Соответственно, и вопрос как правильно это рассчитать?
 Я думаю, что необходимо скопировать указанную картинку несколько раз в новые картинки и уже из них печатать - три раза скопировать в права и три раза вниз ? А затем уже вывести на печать?
 Но тут хочется сделать некую универсальность.
 Дело в том, что картинка может быть изначально разная по размеру и соответственно необходимо правильно рассчитать размер ? копирование и убирается ли картинка при печати на страницу ?
 Подскажите, пожалуйста.
 
|  |   Вопрос задал: hub2002 (статус: Посетитель)Вопрос отправлен: 28 февраля 2011, 16:05
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Вадим К Здравствуйте, hub2002!С принтером можно работать точно так же, как и с обычной канвой. То есть, если можете вывести на канву картинку в заданном количестве и качестве, то проблем нет.
 Единственное, что нужно помнить - это то, что канва принтера имеет определенные размеры.
 
 Ближе к практике.
 Размеры канвы принтера - Printer.Canvas.Height и Printer.Canvas.width
 Нарисовать что то на канве
 Printer.Canvas.CopyRect(DestinationRectangle, Image.Canvas, SourceRectangle);
 Где
 DestinationRectangle - это переменная типа TRect, которая содержит координаты на листе, куда нужно печатать.
 Image.Canvas - собственно канва, которая содержит рисунок для вывода.
 SourceRectangle - это тоже переменная типа trect, которая указывает, какую часть Image.Canvas нужно выводить.
 Что бы быстро инициализировать эти две переменные, делаем так
 SourceRectangle := Rect(x_координата_угла, y_координата_угла, ширина, высота);
 
 Собственно, этого предостаточно. Читаем ещё вот это http://www.delphisources.ru/pages/faq/base/save_real_sizes_when_print.html
 И на закуску - очень интересный компонент, который может решить большинство проблем http://www.delphiarea.com/products/delphi-components/preview/
 
|  | Ответ отправил: Вадим К (статус: Академик)Время отправки: 28 февраля 2011, 16:43
 
 |  
 Мини-форум вопросаВсего сообщений: 2; последнее сообщение — 1 марта 2011, 14:40; участников в обсуждении: 2. 28 февраля 2011, 19:08: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Алгоритмы, преобразования модератором Ерёмин А.А. 
|   | hub2002 (статус: Посетитель), 1 марта 2011, 14:19 [#1]:Уважаемые эксперты, а подскажите, как сдублировать bitmap ? есть bitmap - необходимо справа и снизу добавить его же...
 Что-то не понимаю как сделать...
 |  
|   | Вадим К (статус: Академик), 1 марта 2011, 14:40 [#2]:просто дважды нарисовать? Галочка "подтверждения прочтения" - вселенское зло. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |