Продвинутые возможности

Пагинация

1. Обновление номера страницы

Синтаксис

Просто вставьте элемент в вашем офисном редакторе.

Пример

В Microsoft Word:

  • Используйте функцию «Вставка → Номер страницы»
    В LibreOffice:
  • Используйте функцию «Вставка → Поле → Номер страницы»
Результат

В сгенерированном отчёте номера страниц на каждой странице будут обновляться автоматически.

2. Генерация оглавления

Синтаксис

Просто вставьте элемент в вашем офисном редакторе.

Пример

В Microsoft Word:

  • Используйте функцию «Вставка → Оглавление» В LibreOffice:
  • Используйте функцию «Вставка → Оглавление и указатель → Оглавление, указатель или библиография»
Результат

Оглавление отчёта будет автоматически обновляться на основе содержимого документа.

3. Повтор заголовков таблицы

Синтаксис

Просто настройте это в вашем офисном редакторе.

Пример

В Microsoft Word:

  • Правой кнопкой по заголовку таблицы → «Свойства таблицы» → включите «Повторять как строку заголовка на каждой странице» В LibreOffice:
  • Правой кнопкой по заголовку таблицы → «Свойства таблицы» → вкладка «Положение на странице/Поток текста» → включите «Повторять заголовок»
Результат

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

Интернационализация (i18n)

1. Перевод статического текста

Синтаксис

Используйте тег {t(text)} для интернационализации статического текста:

{t(meeting)}
Пример

В шаблоне:

{t(meeting)} {t(apples)}

JSON-данные или внешний словарь локализации (например, для fr-fr) предоставляют соответствующие переводы (например, meetingrendez-vous, applesPommes).

Результат

При генерации отчёта текст будет заменён соответствующим переводом в зависимости от целевого языка.

2. Перевод динамического текста

Синтаксис

Для данных используйте форматтер :t, например:

{d.id:ifEQ(2):show({t(monday)}):elseShow({t(tuesday)})}
Пример

В шаблоне:

{d.id:ifEQ(2):show({t(monday)}):elseShow({t(tuesday)})}

JSON-данные и словарь локализации предоставляют необходимые переводы.

Результат

В зависимости от условия результатом будет либо lundi, либо mardi (пример для целевого языка).

Сопоставление ключ-значение

1. Преобразование enum (:convEnum)

Синтаксис
{data:convEnum(enumName)}

Например:

0:convEnum('ORDER_STATUS')
Пример

В примере опций API задано следующее:

{
  "enum": {
    "ORDER_STATUS": ["pending", "sent", "delivered"]
  }
}

В шаблоне:

0:convEnum('ORDER_STATUS')
Результат

Выведет pending; если индекс выходит за пределы enum, выводится исходное значение.

Динамические изображения

Info

Сейчас поддерживаются типы файлов XLSX и DOCX ::: В шаблоны документов можно вставлять динамические изображения: изображения-заглушки в шаблоне будут автоматически заменены реальными изображениями при рендере на основе данных. Процесс очень простой и требует лишь:

  1. Вставить временное изображение как заглушку

  2. Отредактировать «Альтернативный текст» изображения, указав заполнитель поля

  3. Отрендерить документ — и система автоматически заменит заглушку реальным изображением

Ниже на примерах объясним, как это делать для DOCX и XLSX.

Вставка динамических изображений в DOCX

Замена одного изображения
  1. Откройте DOCX-шаблон и вставьте временное изображение (можно любое изображение-заглушку, например однотонное синее изображение)

:::info Требования к формату изображения

  • Сейчас изображения-заглушки поддерживают только формат PNG. Рекомендуем использовать наш пример — однотонное синее изображение
  • Рендер поддерживает только PNG, JPG, JPEG. Другие типы изображений могут не отрендериться.

Требования к размеру изображения

И для DOCX, и для XLSX итоговый размер изображения будет соответствовать размеру временного изображения в шаблоне. То есть реальное изображение автоматически масштабируется до размера вставленной заглушки. Если нужно получить 150×150, используйте в шаблоне временное изображение и задайте ему размер 150×150.

  1. Кликните по изображению правой кнопкой, откройте «Альтернативный текст» и укажите заполнитель поля изображения, например {d.imageUrl}:

20250414211130-2025-04-14-21-11-31

  1. Для рендера используйте, например, такие данные:
{
  "name": "Apple",
  "imageUrl": "https://images.pexels.com/photos/206959/pexels-photo-206959.jpeg"
}
  1. В результате рендера временное изображение будет заменено реальным:

20250414203444-2025-04-14-20-34-46

Замена набора изображений в цикле

Если нужно вставить в шаблон группу изображений (например, список товаров), это можно сделать через циклы. Шаги следующие:

  1. Предположим, данные такие:
{
  "products": [
    {
      "name": "Apple",
      "imageUrl": "https://images.pexels.com/photos/206959/pexels-photo-206959.jpeg"
    },
    {
      "name": "Banana",
      "imageUrl": "https://images.pexels.com/photos/61127/pexels-photo-61127.jpeg"
    }
  ]
}
  1. Настройте область цикла в DOCX-шаблоне и вставьте временные изображения в каждом элементе цикла, задав альтернативный текст как {d.products[i].imageUrl}, как показано ниже:

20250414205418-2025-04-14-20-54-19

  1. После рендера все временные изображения будут заменены соответствующими картинками из данных:

20250414205503-2025-04-14-20-55-05

Вставка динамических изображений в XLSX

Способ работы в Excel-шаблонах (XLSX) в целом такой же; обратите внимание на следующие моменты:

  1. После вставки изображения убедитесь, что выбрано «изображение в ячейке», а не «плавающее» изображение поверх ячейки.

20250414211643-2025-04-14-21-16-45

  1. Выберите ячейку, откройте «Альтернативный текст» и укажите заполнитель поля, например {d.imageUrl}.

Штрихкоды

Info

Сейчас поддерживаются типы файлов XLSX и DOCX

Генерация штрихкодов (и QR-кодов)

Генерация штрихкодов работает так же, как и динамические изображения, и требует всего трёх шагов:

  1. Вставьте в шаблон временное изображение, чтобы обозначить место штрихкода

  2. Отредактируйте «Альтернативный текст» изображения и укажите заполнитель поля со штрихкодом, например {d.code:barcode(qrcode)}, где qrcode — тип штрихкода (см. список поддерживаемых ниже)

20250414214626-2025-04-14-21-46-28

  1. После рендера изображение-заглушка будет автоматически заменено соответствующим изображением штрихкода:

20250414214925-2025-04-14-21-49-26

Поддерживаемые типы штрихкодов

НазваниеТип
QR-кодqrcode