Здравствуйте, коллеги! Нужна ваша помощь. Перерыл кучу гайдов, не нашел ответа на волнующий вопрос. Если ниженаписаное выглядит уныло, прошу не тролить, учусь только ))
Приложение для Windows на FM. На основании png-шного шаблона с помощью canvas, накидывает на него строки в определенные места и сохраняет в папке с ехе. В зависимости от диапазона вводимых дат создается несколько однотипных изображений 1_0, 1_1, 1_2 и т.д. (я художник, я так вижу) просто с разными датами и в цикле посылается на печать каждый файл следующим образом:
var
SrcRect, DestRect: TRectF;
DateCount, i : integer;
IMG:TImage;
begin
IMG:=TImage.Create(nil);
DateCount := DaysBetween(DE_Order.Date,DE_Order2.Date); //получаем количество дней между датами
for I := 0 to DateCount do
ListCreate(DE_Order.Date+i,i); //процедура создания png. Втыкает дату в шаблон и сохраняет документ как 1_i
if PrintDialog1.Execute then //После выбора принтера
begin
for i := 0 to DateCount do //отправляем каждый файл в очередь печати напрямую в принтер
begin
Printer.BeginDoc;
SrcRect.Left := 0;
SrcRect.Top := 0;
SrcRect.Right := 2481;
SrcRect.Bottom := 3508;
IMG.Bitmap.LoadFromFile(PChar('1_'+IntToStr(i)+'.png'));
DestRect := TRectF.Create(0, 0, 4962, 7016); //тут я так и не понял, но методом подгона выяснилось, что без увеличения в 2 раза значений SrcRect нормально печатать не будет. Но это не важный момент
Printer.Canvas.DrawBitmap(Img.Bitmap, SrcRect, DestRect, 1);
Printer.EndDoc;
end;
end;
end;
Вот и сам вопрос.. Возникла задача.. Печатать все эти документы в А5 формате по 2 листа на странице. Если делать все руками, можно в папке выделить все изображения - на печать. Там и можно настроить 2 на стр, 4 на странице и прочее. Как программно это можно реализовать?
Заранее огромное спасибо!