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 |
---|---|---|
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");