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

09.09.2021

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

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 документы, но и отображать их внутри отчета!

20 ноября 2024

Локализация и смена языков в FastReport VCL

FastReport VCL поддерживает 40 языков для локализации интерфейса и позволяет изменять язык на лету через меню или код, без перекомпиляции.
2 сентября 2024

Обзор облачного решения для создания и управления отчетами

МоиОтчеты Облако — это мощное облачное решение для создания и управления отчетами, обеспечивающее широкий спектр возможностей, от создания документов в различных форматах до интеграции с корпоративными системами.
11 декабря 2023

Новый транспорт S3 (Amazon) в FastReport VCL

В этой статье мы рассмотрим новый транспорт в S3 (Amazon) для FastReport VCL, являющийся объектным хранилищем файлов и бакетов.