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

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

Printer [D7, Win2k, WinXP]


murtix ©   (2004-11-20 23:50:00) 

Привет мастерам
подскажите пожалуйста как осуществить печать многостранично
например кучу изображений (фото) надо именно многостранично


murtix   (2004-12-05 00:53:00) [1]

>programania
>Тогда не понятно в чем проблема?
Проблема в том что бы выбрать формат бумаги из списка
(TPageSetupDialog), а не в том что бы установить размеры.
Например: нельзя напечатать 14х19 нет такого размера.


programania   (2004-11-27 21:49:00) [2]

>murtix  
>В общем не заказ зависит от бумаги, а наоборот, это не проблема.
Тогда не понятно в чем проблема?
Размер бумаги известен, разрешение принтера тоже.
Расчитайте размер области печати в пикселах:
10/2.5*300 на 15/2.5*300,
масштабируйте фото с обрезкой или добавкой белых краев,
и выведите на printer.canvas все фото как в [2].
Для лучшего качества масштабирования вместо StretchDraw
используйте какую-нибудь графическую библиотеку.


murtix   (2004-11-27 21:33:00) [3]

Заказ будет висеть пока не будет вставлена нужная бумага.
В общем не заказ зависит от бумаги, а наоборот, это не проблема.


programania   (2004-11-27 00:56:00) [4]

>murtix
>нужно програмно без вывода диалога установить размеры бумаги

а как программа сама определит на какой бумаге
печатать и может ли программа заставить этот мини лаб
заправить нужную бумагу?


murtix   (2004-11-27 00:30:00) [5]

В общем это не совсем принтер, а фото мини лаб ~1х2х1 м :)
и он печатает с постоянным разрешением 300 dpi
может печатать на бумаге разных размеров 10х15, 15х21, 20х30
и т.д. далее в системе (win2k sp3) он установлен как обычный принтер.
Можно печатать с любой программы которая знает что такое принтер, но в фото индустрии :) приходится иногда печатать сотни фото на разные размеры и даже с одного фото разные размеры и при этом рисовать на них рамочки-финтиклюшки, так что выводить пользователю окно TPageSetupDialog на каждую фотку гемор :(, задача: нужно програмно без вывода диалога установить размеры бумаги ( они строго определены (есть список размеров)) и напечатать причем обязательно как многостраничный документ иначе нет смысла. можно фотографии каждого размера на отдельный документ.


programania   (2004-11-26 23:45:00) [6]

>murtix  
>Printer.PageWidth Printer.PageHeight свойства только для чтения,
Естественно. Это максимальный размер куда принтер может печатать
он зависит от настроек принтера: разрешения 300,600...
качества, устанавливаемых в свойствах принтера.
В программе, чтоб не зависеть от принтера,
нужно получать и использовать те что есть для определения
куда принтер напечатает и хватит ли места.
Например, если фото 2500*2000  а разрешение принтера
установлено 600 точек на дюйм, то на A4
без StretchDraw фото на бумаге будет 2500/600*2.5 * 2000/600*2.5
или 10*8 см т.е. примерно треть листа
и если хотите во весь лист нужна StretchDraw,
т.е. надо устанавливать размер изображения
под PageWidth а не наоборот потому что принтер
не может плавно менять свое разрешение.

>фотки уже готовы по размерам листов
я понял фотки в файлах, а листы это бумага
как они могут быть готовы? по пропорциям сторон?


murtix   (2004-11-25 00:14:00) [7]

Printer.PageWidth Printer.PageHeight свойства только для чтения, а мне необходимо установить их.
скажем 1 фото на один размер
      2 фото на другой
      3 фото на третий и т.д.
... и StretchDraw не надо фотки уже готовы по размерам листов если я смогу установить их :(.


programania   (2004-11-24 19:19:00) [8]


Printer.Orientation:=poPortrait;
for i:=1 to 10000 do begin
 Printer.beginDoc;
 foto.loadFromFile('F'+intToStr(i)+'.bmp');
 Printer.canvas.draw(0,0,foto);
 Printer.endDoc;
end;

размер бумаги получается из
Printer.PageWidth Printer.PageHeight
и фото масштабируется на него
StretchDraw... чтоб во весь лист.


murtix   (2004-11-24 00:51:00) [9]

Лю-юди-и пожалуйста помогите
и еще как програмно настроить параметры получаемые из TPageSetupDialog т.е. выбрать размер бумаги, верт. или гориз. и т.п.


Наверх

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