logo
small logo
  • Продукты
  • Купить
  • Поддержка
  • Статьи
  • Клиентская панель Поддержка
  • Главная
  • /
  • Статьи
  • /
  • PDF документ в отчете - использование нового объекта TfrxPDFView
  • Как создать PDF из Delphi / C++Builder / Lazarus

    14 мая 2020 г.

    Довольно часто надо получить PDF-документ из приложения на Pascal - будь то Delphi или Lazarus.

    Подробнее
  • Использование интерактивных карт в FastReport VCL 2021

    30 апреля 2021 г.

    Представляем вам заключительную статью по курсам образовательной программы «Академик». В предыдущих публикациях было рассмотрено

    Подробнее
  • Семейство генераторов отчетов FastReport - быстрый обзор

    23 марта 2020 г.

    Отчетность – без нее невозможно вести деятельность ни в одной сфере жизнедеятельности. Бюрократия является неодолимой

    Подробнее
  • Построение отчетов с диалоговыми формами

    26 апреля 2021 г.

    В предыдущих статьях по образовательной программе Академик мы научились устанавливать FastReport в Lazarus, освоили работу

    Подробнее
  • Как убрать пересечение объектов в FastReport VCL

    29 марта 2022 г.

    В новой версии FastReport VCL 2022.2 мы добавили новый функционал в дизайнер отчетов, который поможет

    Подробнее

PDF документ в отчете - использование нового объекта TfrxPDFView

9 сентября 2021 г.

FastReport VCL прежде всего – это генератор документов. Основываясь на этом, можно сделать предположение, что отображение или встраивание в отчет документов других форматов – излишне. Но запросы наших пользователей говорят об обратном. Многим приходится сталкиваться с задачей интеграции старых систем с новыми, и такая система может содержать уже готовые документы, которые необходимо подключить к новым отчетам. Проще говоря, встроить и отображать документ другого формата внутри отчета, добавляя к нему новые страницы или поля. 

Для таких задач, в FastReport VCL 2021.3 мы добавили новый объект отчета TfrxPDFView. Данный объект использует библиотеку с открытым исходным кодом Pdfium и предназначен для отображения PDF документов внутри отчета. Вы можете собрать библиотеку самостоятельно или использовать готовые сборки из нашего инсталляционного пакета (frx_pdfium.dll и frx_pdfium_64.dll в папке Bin). При самостоятельной сборке необходимо переименовать библиотеку в frx_pdfium.dll для 32-х разрядной системы и в frx_pdfium_64.dll для 64-х разрядной системы. Для компиляции библиотеки вручную понадобится: Visual Studio и Google depot_tools. Более подробно можно посмотреть здесь и здесь.

Как было написано выше, собирать самостоятельно Pdfium не требуется, достаточно использовать уже готовые библиотеки из FastReport VCL, но, если ограничения безопасности в вашей компании требуют сборку всех исходных кодов на вашей стороне, вы можете использовать приведённые выше ссылки.

TfrxPDFView может отображать документ как на одной, так и на нескольких страницах, используя возможности движка для разрыва данных. Рассмотрим подробней, как использовать данный объект и какие возможности он имеет.

После установки последней версии FastReport VCL 2021.3 данный компонент должен появиться на палитре компонентов Delphi в разделе FastReport VCL.

Добавление TfrxPDFObject в среде разработке Embarcadero RAD Studio

Просто добавьте компонент TfrxPDFObject на форму приложения, чтобы использовать TfrxPDFView в Run-time. Если вы создали новый проект, добавьте компонент TfrxReport и двойным щелчком вызовите дизайнер отчетов.

Дизайнер отчётов

Кликните на PDF Object в панели инструментов дизайнера и создайте объект на бэнде в отчете, как и любой другой объект отчета.

Создание объекта

Объект создан. После этого должен появиться редактор, в который можно загрузить PDF документ.

TfrxPDFView позволяет выводить и многостраничные документы. Для этого у объекта есть специальные настройки.

Свойство DetailStretchMode отвечает за отображение содержимого внутри контейнера объекта и может принимать следующие значения:

  • pdOneToOneStrongStretch – страница всегда растягивается, используя размеры объекта. Пропорции не соблюдаются.
  • pdOneToOneNormalize - страница всегда растягивается с соблюдением пропорций оригинальной страницы в PDF документе.
  • pdManyToOneNormalize – позволяет вместить несколько страниц в область объекта, соблюдая пропорции страниц в PDF документе.

Пример использования свойства DetailStretchMode

Отображение многостраничного PDF документа

FastReport VCL позволяет выводить PDF документ в виде: одна страница PDF документа – одна страница в отчете, для каждой страницы в PDF документе.

Мы уже создали и загрузили PDF документ на бэнд заголовок отчета. Растянем его на всю страницу шаблона отчета, чтобы она выглядела примерно следующим образом:

Настройка шаблона отчёта

Если сейчас нажать на просмотр отчета, то мы увидим только одну страницу, хотя, загружен многостраничный документ. Для вывода всех страниц в отчете нам нужно выполнить ряд действий.

  • Шаг 1. Включить свойства AllowSplit и Stretched в True, у бэнда на котором располагается объект TfrxPDFView. Чтобы бэнд растягивался и разрывался.
  • Шаг 2. Установить у объекта TfrxPDFView свойство StretchMode в smActualHeight или smMaxHeight, чтобы объект мог растягиваться.

Теперь можно запустить построение отчёта и взглянуть на результат.

Результат

FastReport VCL вывел все страницы PDF документа на страницах отчета.

Объект TfrxPDFView имеет и другие свойства. Свойство “Password“ устанавливает пароль, который используется PDF документом. А флаги свойства “DrawOptions” позволяют управлять отображением документа.

Настройка свойств отчёта

Дополнительно можно использовать имя файла в качестве источника для объекта TfrxPDFView используя свойство FileLink. И это ещё не всё! С помощью свойства DataLink документы можно загружать даже через http и https протоколы.

Теперь FastReport VCL умеет не только генерировать PDF документы, но и отображать их внутри отчета!

О продукте Скачать Купить
avatar
Den Zubov
VCL разработка
Fast Reports Team: Den Zubov - VCL Development at Fast Reports
VCL Lazarus FastReport PDF Report Delphi

Добавить комментарий
logo
  • +7(800)551-75-80
  • info@fastreport.ru
  • Ростов-на-Дону, Россия, 344082, ул.Обороны 24, офис 311
  • Купить
  • Загрузить
  • Документация
  • Отзывы
  • Как деинсталировать
  • Онлайн поддержка
  • FAQ
  • Видео уроки
  • Форум
  • Статьи
  • Наши Новости
  • Пресса о нас
  • Реселлеры
  • ВУЗам
  • Карьера
  • Контакты

© 1998-2022 ООО «Фаст Репортс»

  • Согласие с обработкой персональных данных
  • Не является публичной офертой