Форум: "Media";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
ВнизPrinter Найти похожие ветки
← →
murtix (2004-11-20 23:50) [0]Привет мастерам
подскажите пожалуйста как осуществить печать многостранично
например кучу изображений (фото) надо именно многостранично
← →
murtix (2004-11-24 00:51) [1]Лю-юди-и пожалуйста помогите
и еще как програмно настроить параметры получаемые из TPageSetupDialog т.е. выбрать размер бумаги, верт. или гориз. и т.п.
← →
programania © (2004-11-24 19:19) [2]
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-25 00:14) [3]Printer.PageWidth Printer.PageHeight свойства только для чтения, а мне необходимо установить их.
скажем 1 фото на один размер
2 фото на другой
3 фото на третий и т.д.
... и StretchDraw не надо фотки уже готовы по размерам листов если я смогу установить их :(.
← →
programania © (2004-11-26 23:45) [4]>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-27 00:30) [5]В общем это не совсем принтер, а фото мини лаб ~1х2х1 м :)
и он печатает с постоянным разрешением 300 dpi
может печатать на бумаге разных размеров 10х15, 15х21, 20х30
и т.д. далее в системе (win2k sp3) он установлен как обычный принтер.
Можно печатать с любой программы которая знает что такое принтер, но в фото индустрии :) приходится иногда печатать сотни фото на разные размеры и даже с одного фото разные размеры и при этом рисовать на них рамочки-финтиклюшки, так что выводить пользователю окно TPageSetupDialog на каждую фотку гемор :(, задача: нужно програмно без вывода диалога установить размеры бумаги ( они строго определены (есть список размеров)) и напечатать причем обязательно как многостраничный документ иначе нет смысла. можно фотографии каждого размера на отдельный документ.
← →
programania © (2004-11-27 00:56) [6]>murtix
>нужно програмно без вывода диалога установить размеры бумаги
а как программа сама определит на какой бумаге
печатать и может ли программа заставить этот мини лаб
заправить нужную бумагу?
← →
murtix (2004-11-27 21:33) [7]Заказ будет висеть пока не будет вставлена нужная бумага.
В общем не заказ зависит от бумаги, а наоборот, это не проблема.
← →
programania © (2004-11-27 21:49) [8]>murtix
>В общем не заказ зависит от бумаги, а наоборот, это не проблема.
Тогда не понятно в чем проблема?
Размер бумаги известен, разрешение принтера тоже.
Расчитайте размер области печати в пикселах:
10/2.5*300 на 15/2.5*300,
масштабируйте фото с обрезкой или добавкой белых краев,
и выведите на printer.canvas все фото как в [2].
Для лучшего качества масштабирования вместо StretchDraw
используйте какую-нибудь графическую библиотеку.
← →
murtix (2004-12-05 00:53) [9]>programania
>Тогда не понятно в чем проблема?
Проблема в том что бы выбрать формат бумаги из списка
(TPageSetupDialog), а не в том что бы установить размеры.
Например: нельзя напечатать 14х19 нет такого размера.
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.043 c