Показать сообщение отдельно
  #2  
Старый 04.03.2009, 15:30
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Тебе надо:
1. Понять как работать с объектом TPrinter.
2. Найти на сайте CodeGear процку подготовки картинки к печати. Она там преобразуется в DIB для корректной печати. сам налетал на это дело - печатаешь несколько картинок, какие-то печатаются, какие-то - нет. Если все в DIB'е, то, вроде, все нормально печатается.
3. Ну и дальше немного математики. Т.к. разрешение принтера заведомо очень большое, то тебе все-равно придется увеличивать картинки. Т.е. алгоритм такой. Вычисляем положение и размеры отпечатка, исходя из разрешения принтера, далее делаем Bitmap и отрисовываем на нем нужную нам картинку с масштабированием. Далее преобразуем этот битмап в DIB п это DIB выводим на канву принтера (Printer.Canvas). После того, как сформировали страницу целиком, отсылаем ее на принтер.
Ответить с цитированием