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 |
outputFormat |
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 |
---|---|---|
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 |
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");
For more information, see these resources...