Создание шаблонов

Для создания шаблонов воспользуйтесь средствами визуальной разработки, которые поддерживают необходимые форматы. Например, для генератора Jasper Report шаблоны могут быть созданы в специализированной программе Jaspersoft Studio.

Инструкция для Jaspersoft Studio

В Jaspersoft Studio необходимо сформировать файл .jrxml, который будет являться шаблоном отчёта.
  • Шаг 1. Создание пустого отчета
Для создания пустого отчета нужно вызвать FileNewJasper Report. Далее выбрать Blank A4.

Увеличить

  • Шаг 2. Создание параметров
Для создания параметров шаблона (заголовки, поля таблицы, подписи) необходимо на вкладке Outline в строке Parameters нажать правую кнопку мыши, и выбрать Create Parameter.

Увеличить

Как правило, все параметры – это текстовые данные. Они имеют тип String.

Увеличить

На каждую таблицу заводится отдельный параметр, через который будет передаваться JSON с данными для наполнения таблицы. Тип у него также String:

Увеличить

  • Шаг 3. Установка текстовых данных
Для установки на форму шаблона каких-либо текстовых данных (например, заголовков или подписей) необходимо добавить поля Text Field или Static Text.

Увеличить

В Static Text может быть только текст, в Text Field возможно задавать переменные: например, номер документа, дату или время.

Увеличить

  • Шаг 4. Установка таблиц
Для установки на форму шаблона каких-либо таблиц необходимо добавить поле Table.

Увеличить

Запустится Table Wizard. Необходимо выбрать новый DataSet, указать его имя, выбрать Create an empty dataset. При выборе соединения с БД указать в поле Use JRDatasource expression:
new net.sf.jasperreports.engine.data.JsonDataSource(new ByteArrayInputStream($P{tableData}.getBytes()), null)
Это означает, что данные для таблицы будут получены из параметра tableData, переданого в формате JSON.

Увеличить

После внесения всех необходимых параметров можно проверить корректность визуального представления шаблона. Для этого в Jaspersoft Studio реализована функция Preview.

Загрузка шаблона в сервис Печати

Для загрузки шаблона в сервис печати необходимо сформировать файл .zip, в котором будет шаблон отчета в формате .jrxml и файл .json с параметрами отчета. Формат JSON следующий:
configuration.json type=json
{
  "templateCode": "TemplateDoc",
  "description": "TemplateDoc",
  "selectionStrategy": "BASED_ON_DATE",
  "activeVersions": [
    {
      "versionCode": "version_01",
      "description": "version description",
      "activationDate": "15.02.2021",
      "engine": "JASPERREPORTS",
      "defaultFormat": "PDF",
      "templateFileName": "templateDoc.jrxml"
    }
  ]
}

Инструкция для FreeMarker

Компонент использует движок Apache FreeMarker версии 2.3.30. Apache FreeMarker — это шаблонный движок: библиотека Java для генерации текста (HTML-страницы, электронные письма, файлы конфигурации, исходный код и другое) на основе шаблонов и изменяемых данных. Шаблон представляет собой текстовый файл или HTML-файл с конструкциями Freemarker. Шаблон может содержать списки, строковые и арифметические операции, условные выражения, циклы, макросы и другое. Шаблоны написаны на простом специализированном языке шаблонов FreeMarker (FreeMarker Template Language, FTL).
Компонент поддерживает следующие типы для передачи параметров ресурсов при генерации:
  • InputStream;
  • String.
Движок FreeMarker не поддерживает работу с ресурсами по умолчанию, но, если необходимо использовать в шаблоне изображения, их можно передавать в формате base64, в виде пути до файла либо в виде ссылки.
Для описания картинки, которая затем будет встроена в шаблон, необходимо в шаблоне FTL добавить стандартный тег HTML <img ... src="${image}" ... /> с установкой всех необходимых атрибутов (размер и т.д.), где image — название параметра в конфигурационном файле шаблона, через который будет получена картинка.
Пример шаблона с параметром с названием image:
Раскрыть type=html
<html>
  <head>
    <meta charset="utf-8">
      <title>Анкета сотрудника</title>
  </head>
  <body>
    <h1>Анкета сотрудника</h1>
    <img alt="Фото сотрудника" src="${image}" width=100 height=100 align="left"/>
  </body>
</html>
Более подробная инструкция о разработке шаблона документа для движка Apache FreeMarker приведена на официальном сайте.

Инструкция для XDocReport

Компонент использует версию 2.0.2. Для работы с ним можно использовать любой из этих офисных пакетов: MS Office, LibreOffice или OpenOffice. Компонент поддерживает синтаксис Freemarker.
Формат загружаемых шаблонов, которые будут созданы с помощью XDocReport, — odt. Компонент поддерживает InputStream для передачи параметров ресурсов при генерации. XDocReport поддерживает только вставку картинок в качестве ресурсов. Для добавления картинки, которая затем будет заменена, необходимо:
  • В шаблон формата .odt добавить картинку-заглушку.
  • Установить картинке имя, совпадающее с именем параметра в конфигурационном файле шаблона, через который будет получена картинка.
Картинку нужно добавить в целевое место и с желаемыми размерами.
Более подробная инструкция по разработке шаблонов документов с помощью XDocReport приведена здесь.

Запуск импорта архива шаблонов

Для загрузки созданного архива шаблонов на сервер необходимо выполнить POST-запрос к сервису template-registry.
При работе на стенде из вашего неймспейса используйте следующий адрес:
curl --location --request POST '{env.PARAMETERS_IMPORT_SERVICE_URL}/template-registry/api/v1/templates?file_name=zip.zip' \
--header 'Content-Type: application/octet-stream' \
--data-binary ‘@<путь к файлу>’

В рамках данного вызова необходимо изменять только путь до архива с шаблоном.

При локальной работе с вашей машины используйте адрес вида:

```bash type=bash collapsible=false
curl --location --request POST 'http://<адрес виртуальной машины>:8083/template-registry/api/v1/templates?file_name=zip.zip' \
--header 'Content-Type: application/octet-stream' \
--data-binary ‘@<путь к файлу>
В рамках данного вызова необходимо изменять путь до архива с шаблоном и адрес виртуальной машины. Узнать адрес виртуальной машины можно в паспорте стенда вашего проекта. Дополнительную информацию можно получить у аккаунт-менеджера.

Демопримеры

В демопримерах реализованы стандартные сценарии, демонстрирующие работу отдельных сервисов Платформы ГосТех. Отправка тестовых запросов в демопримерах позволит вам ознакомиться с функциями того или иного сервиса. Доступные демопримеры и описания реализованной в них функциональности представлены ниже.
Генерация печатной формы
Генерация печатных форм с заданным форматом и набором полей, загрузка готовых шаблонов
Предыдущий раздел
Быстрый старт
Следующий раздел
Создание сервиса генерации
Была ли страница полезной?