Red Hat Training

A Red Hat training course is available for Red Hat Fuse

Chapter 45. FOP

FOP Component

Available as of Camel 2.10
The FOP component allows you to render a message into different output formats using Apache FOP.
Maven users will need to add the following dependency to their pom.xml for this component:
<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]

Output Formats

The primary output format is PDF but other output formats are also supported:
Name Output Format Description
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
The complete list of valid output formats can be found here

Endpoint Options

name default value description
outputFormat See table above.
userConfigURL none The location of a configuration file with the following structure. From Camel 2.12 onwards the file is loaded from the classpath by default. You can use file:, or classpath: as prefix to load the resource from file or classpath. In previous releases the file is always loaded from file system.
fopFactory Allows you to use a custom configured or custom implementation of org.apache.fop.apps.FopFactory.

Message Operations

name default value description
CamelFop.Output.Format Overrides the output format for that message
CamelFop.Encrypt.userPassword PDF user password
CamelFop.Encrypt.ownerPassword PDF owner passoword
CamelFop.Encrypt.allowPrint true Allows printing the PDF
CamelFop.Encrypt.allowCopyContent true Allows copying content of the PDF
CamelFop.Encrypt.allowEditContent true Allows editing content of the PDF
CamelFop.Encrypt.allowEditAnnotations true Allows editing annotation of the PDF
CamelFop.Render.producer Apache FOP Metadata element for the system/software that produces the document
CamelFop.Render.creator Metadata element for the user that created the document
CamelFop.Render.creationDate Creation Date
CamelFop.Render.author Author of the content of the document
CamelFop.Render.title Title of the document
CamelFop.Render.subject Subject of the document
CamelFop.Render.keywords Set of keywords applicable to this document

Example

Below is an example route that renders PDFs from XML data and XSLT template and saves the PDF files in target folder:
from("file:source/data/xml")
    .to("xslt:xslt/template.xsl")
    .to("fop:application/pdf")
    .to("file:target/data");