Трансформация содержимого документов

Примечание

Доступно только в enterprise версии.

Трансформации выполняются в микросервисе ecos-transformations.

Spring настройки для микросервиса трансформаций:

ecos:
  webapp:
    task:
      executors:
        transformations:
          corePoolSize: 10 # количество потоков трансформации

Конвертация — частный случай трансформации, который подразумевает изменение содержимого из одного формата в другой.

Для конвертации между типами документов используется OnlyOffice.

OnlyOffice

Настройки:

ecos:
  integrations:
    onlyoffice:
      host: only-office-app # хост, на котором доступен сервер OnlyOffice
      port: 80              # http порт для работы с OnlyOffice

Типы источников контента (input)

Идентификатор

Конфигурация

Описание

entity-content

entityRef: String — сущность, из которой нужно загрузить контент
attribute: String — атрибут с контентом. По умолчанию — основной контент документа

Загрузка контента из свойства документа

template

entityRef: EntityRef — ссылка на сущность, на основе которой будет вычислен шаблон
templateRef: EntityRef — ссылка на шаблон

Генерация содержимого на основе шаблона

Типы трансформаций (transformations)

Идентификатор

Конфигурация

Описание

convert

converter: String — идентификатор конкретного конвертера. Если не задан, вычисляется автоматически
toMimeType: String — MIME type содержимого, которое требуется получить по итогу конвертации

Конвертирование содержимого из одного MIME type в другой

barcode

Добавление баркода на документ

Типы целей трансформации (output)

Идентификатор

Конфигурация

Описание

temp-file

Загрузка результата во временный файл. Как правило используется, если результат требуется скачать.

mutate

entityRef: EntityRef — ссылка на мутируемую сущность
attribute: String — целевой атрибут для содержимого. По умолчанию _content
additionalAttributes: Map<String, Any?> — дополнительные атрибуты для мутации

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

Общий вид конфигурации для трансформации

Общий вид описания трансформации состоит из трёх частей:

  • input — описание источника контента;

  • transformations — список трансформаций в порядке очереди;

  • output — описание цели для итогового контента.

Пример:

  1. Берём основное содержимое у сущности emodel/anysrc@123-123-123;

  2. Преобразовываем его в pdf;

  3. Добавляем баркод;

  4. Загружаем результат во временный файл.

{
  "input": {
    "type": "entity-content",
    "config": {
      "entityRef": "emodel/anysrc@123-123-123"
    }
  },
  "transformations": [
    { "type": "convert", "config": { "toMimeType": "application/pdf" } },
    { "type": "barcode" }
  ],
  "output": {
    "type": "temp-file"
  }
}

UI действие

Действие для трансформации описано в разделе UI действий с ID transform здесь