Здравствуйте, коллеги! Нужна ваша помощь. Перерыл кучу гайдов, не нашел ответа на волнующий вопрос. Если ниженаписаное выглядит уныло, прошу не тролить, учусь только ))
Приложение для 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 на странице и прочее. Как программно это можно реализовать?
Вопрос
Николай_1988
Здравствуйте, коллеги! Нужна ваша помощь. Перерыл кучу гайдов, не нашел ответа на волнующий вопрос. Если ниженаписаное выглядит уныло, прошу не тролить, учусь только ))
Приложение для 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 на странице и прочее. Как программно это можно реализовать?
Заранее огромное спасибо!
Изменено пользователем Николай_1988Ссылка на комментарий
2 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.