Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Распечатка и разделение страницы формата А3 в FastReport 4.0

Delphi , Базы данных , Отчеты

В этой статье мы рассмотрим вопрос распечатки и разделения страницы формата А3 на страницы формата А4 в ландшафтной ориентации с использованием FastReport 4.0 в Delphi XE2.

Проблема

Пользователь хочет распечатать страницу формата А3 в ландшафтной ориентации и разделить ее на страницы формата А4 также в ландшафтной ориентации. При использовании следующих параметров:

PrintMode := pmSplit;
PrintOnSheet := 9;
page.Orientation := poLandscape;

страницы распечатываются в портретной ориентации, в то время как пользователю требуется ландшафтная ориентация.

Подтвержденный ответ

FastReport автоматически разделяет страницы, и это поведение нельзя изменить без изменения исходного кода FR (процедура SplitPage в файле frxPreviewPages.pas). Однако, есть альтернативный способ добиться нужного результата.

Альтернативный ответ

Чтобы распечатать страницу формата А3 в ландшафтной ориентации и разделить ее на страницы формата А4 в ландшафтной ориентации, можно воспользоваться следующим подходом:

  1. Создайте две страницы в вашем отчете: одну для страницы А3 в ландшафтной ориентации, другую для страницы А4 в ландшафтной ориentaции.
  2. Добавьте все элементы, которые вы хотите распечатать, на страницу формата А3.
  3. Установите параметры для страницы А3:
page1.Orientation := poLandscape;
page1.PaperKind := pkA3;
  1. Установите параметры для страницы А4:
page2.Orientation := poLandscape;
page2.PaperKind := pkA4;
  1. Добавьте условие для печати страницы А4, если страница А3 не помещается на одной странице:
if not FastReport.PageIsSplit(page1) then
begin
  FastReport.PrintPage(page1);
  FastReport.PrintPage(page2);
end
else
begin
  FastReport.PrintPage(page1);
end;

При таком подходе, если страница формата А3 не помещается на одной странице, она будет разделена на страницы формата А4 в ландшафтной ориентации.

Пример кода

Вот пример кода, который демонстрирует описанный выше подход:

procedure TForm1.Button1Click(Sender: TObject);
begin
  with FR1 do
  begin
    if not Report1.IsDesigning then
    begin
      Report1.PrintSettings.PrintMode := pmNormal;
      Report1.PrintSettings.PrintOnSheet := 1;
      Report1.PrintSettings.Orientation := poLandscape;
      Report1.PrintSettings.PaperKind := pkA3;
      if not FastReport.PageIsSplit(Report1.Page1) then
      begin
        FastReport.PrintPage(Report1.Page1);
        Report1.PrintSettings.PaperKind := pkA4;
        FastReport.PrintPage(Report1.Page2);
      end
      else
        FastReport.PrintPage(Report1.Page1);
    end;
  end;
end;

Надеемся, что эта информация поможет вам решить вашу проблему с распечаткой и разделением страницы формата А3 в FastReport 4.0 в Delphi XE2.

Создано по материалам из источника по ссылке.

В этом контексте пользователь хочет распечатать страницу формата А3 в ландшафтной ориентации и разделить ее на страницы формата А4 в той же ориентации с использованием FastReport 4.0 в Delphi XE2, но сталкивается с трудностями в достижении этой цели.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Отчеты ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 01:37:34/0.0032680034637451/0