FOP

Only producer is supported

Компонент FOP позволяет преобразовывать сообщение в различные выходные форматы с помощью Apache FOP (opens in a new tab) .

Пользователям Maven необходимо добавить следующую зависимость для pom.xmlэтого компонента:

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-fop</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>

URI format

fop://outputFormat?[options]

Usage

Output Formats

Основной формат вывода -- PDF, но поддерживаются и другие форматы вывода: (opens in a new tab)

PDF

  • application/pdf

  • По умолчанию: Portable Document Format

PS

  • application/postscript

  • По умолчанию: Adobe Postscript

PCL

  • Тип: application/x-pcl

  • По умолчанию: Printer Control Language

PNG

  • image/png

  • По умолчанию: PNG images

JPEG

  • Тип: image/jpeg

  • По умолчанию: JPEG images

SVG

  • image/svg+xml

  • По умолчанию: Scalable Vector Graphics

XML

  • Тип: application/X-fop-areatree

  • По умолчанию: Area tree representation

MIF

  • application/mif

  • По умолчанию: FrameMaker’s MIF

RTF

  • Тип: application/rtf

  • По умолчанию: Rich Text Format

TXT

  • text/plain

  • По умолчанию: Text

Полный список допустимых форматов вывода можно найти в MimeConstants.javaисходном файле.

Configuring Options

Компоненты Camel настраиваются на двух отдельных уровнях:

  • уровень компонентов

  • уровень конечной точки

Configuring Component Options

На уровне компонентов задаются общие и общие конфигурации, которые затем наследуются конечными точками. Это самый высокий уровень конфигурации.

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

У некоторых компонентов всего несколько параметров, а у других -- много. Поскольку компоненты обычно имеют предустановленные значения по умолчанию, которые широко используются, зачастую вам может потребоваться настроить лишь несколько параметров компонента, а то и вовсе ни одного.

Вы можете настроить компоненты, используя:

  • Компонент DSL (opens in a new tab) .

  • в файле конфигурации ( application.propertiesфайлы *.yaml, и т.д.).

  • непосредственно в коде Java.

Configuring Endpoint Options

Настройка конечных точек обычно занимает больше времени, поскольку у них есть множество параметров. Эти параметры помогают вам настроить функции конечной точки. Параметры также классифицируются по тому, используется ли конечная точка как потребитель ( от ), как производитель ( от ) или и то, и другое.

Конечные точки чаще всего настраиваются непосредственно в URI конечной точки в виде параметров пути и запроса . Вы также можете использовать Endpoint DSL (opens in a new tab) и DataFormat DSL (opens in a new tab) в качестве типобезопасного способа настройки конечных точек и форматов данных в Java.

Хорошей практикой при настройке параметров является использование заполнителей свойств (opens in a new tab) .

Заполнители свойств обеспечивают несколько преимуществ:

  • Они помогают предотвратить использование жестко запрограммированных URL-адресов, номеров портов, конфиденциальной информации и других настроек.

  • Они позволяют вынести конфигурацию за пределы кода.

  • Они помогают коду стать более гибким и пригодным для повторного использования.

В следующих двух разделах перечислены все параметры, сначала для компонента, а затем для конечной точки.

Component Options

The FOP component supports 2 options, which are listed below.

lazyStartProducer (producer)

  • Тип: Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.

  • По умолчанию: false

  • Тип: boolean

autowiredEnabled (advanced)

  • Включено ли автоматическое связывание. Это используется для параметров автоматического связывания (параметр должен быть помечен как autowired) путём поиска в реестре экземпляра соответствующего типа, который затем настраивается в компоненте. Это может использоваться для автоматической настройки источников данных JDBC, фабрик JMS-подключений, клиентов AWS и т. д.

  • По умолчанию: true

  • Тип: boolean

Endpoint Options

Конечная точка FOP настраивается с использованием синтаксиса URI:

fop:outputType

Со следующими параметрами пути и запроса :

Path Parameters (1 parameters)

outputType (producer)

  • Обязательно Основной формат вывода -- PDF, но поддерживаются и другие форматы вывода.

    Значения перечисления:

    • pdf

    • ps

    • pcl

    • png

    • jpeg

    • svg

    • xml

    • mif

    • rtf

    • txt

  • По умолчанию:

  • Тип: FopOutputType

Query Parameters (3 parameters)

fopFactory (producer)

  • Позволяет использовать пользовательскую настройку или реализацию org.apache.fop.apps.FopFactory.

  • По умолчанию:

  • Тип: FopFactory

userConfigURL (producer)

  • Тип: Расположение файла конфигурации, который можно загрузить из classpath или файловой системы.

  • По умолчанию:

  • Тип: String

lazyStartProducer (producer (advanced))

  • Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.

  • По умолчанию: false

  • Тип: boolean

Message Headers

Компонент FOP поддерживает 1 заголовок(и) сообщения, которые перечислены ниже:

CamelFop.Output.Format (producer)

Constant: CAMEL_FOP_OUTPUT_FORMAT (opens in a new tab)

  • Выходной формат..

  • По умолчанию:

  • Тип: String

Configuration file

Расположение файла конфигурации со следующей структурой (opens in a new tab) . По умолчанию файл загружается из classpath. Вы можете использовать префикс file:, или classpath:для загрузки ресурса из файла или classpath. В предыдущих версиях файл всегда загружался из файловой системы.

Message Operations

CamelFop.Output.Format

    • Переопределяет формат вывода для этого сообщения.

CamelFop.Encrypt.userPassword

  • По умолчанию:

  • Тип: пароль пользователя PDF

CamelFop.Encrypt.ownerPassword

  • Пароль владельца PDF-файла

CamelFop.Encrypt.allowPrint

  • По умолчанию: true

  • Позволяет распечатать PDF-файл

CamelFop.Encrypt.allowCopyContent

  • По умолчанию: true

  • Позволяет копировать содержимое PDF-файла

CamelFop.Encrypt.allowEditContent

  • По умолчанию: true

  • Позволяет редактировать содержимое PDF-файла

CamelFop.Encrypt.allowEditAnnotations

  • По умолчанию: true

  • Позволяет редактировать аннотации PDF-файла

CamelFop.Render.producer

  • По умолчанию: Apache FOP

  • Элемент метаданных для системы/программного обеспечения, создающего документ

CamelFop.Render.creator

    • Элемент метаданных для пользователя, создавшего документ

CamelFop.Render.creationDate

  • Дата создания

CamelFop.Render.author

  • Автор содержания документа

CamelFop.Render.title

  • Название документа

CamelFop.Render.subject

  • Тема документа

CamelFop.Render.keywords

  • Набор ключевых слов, применимых к этому документу

Example

Ниже приведен пример маршрута, который визуализирует PDF-файлы из XML-данных и шаблона XSLT и сохраняет PDF-файлы в целевой папке:

from("file:source/data/xml")
    .to("xslt:xslt/template.xsl")
    .to("fop:application/pdf")
    .to("file:target/data");

Spring Boot Auto-Configuration

При использовании fop с Spring Boot обязательно используйте следующую зависимость Maven для поддержки автоматической настройки:

<dependency>
  <groupId>org.apache.camel.springboot</groupId>
  <artifactId>camel-fop-starter</artifactId>
  <version>x.x.x</version>
  <!-- use the same version as your Camel core version -->
</dependency>

Компонент поддерживает 3 опции, которые перечислены ниже.

camel.component.fop.autowired-enabled

  • Включено ли автоматическое связывание. Это используется для параметров автоматического связывания (параметр должен быть помечен как autowired) путём поиска в реестре экземпляра соответствующего типа, который затем настраивается в компоненте. Это может использоваться для автоматической настройки источников данных JDBC, фабрик JMS-подключений, клиентов AWS и т. д.

  • По умолчанию: true

  • Тип: Boolean

camel.component.fop.enabled

  • Включить ли автоматическую настройку компонента FOP. По умолчанию эта опция включена.

  • По умолчанию:

  • Тип: Boolean

camel.component.fop.lazy-start-producer

  • Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.

  • По умолчанию: false

  • Тип: Boolean