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 |
---|---|---|
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 |
fopFactory | Allows to use a custom configured or 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 |
CamelFop.RendererOptions | (since Camel 2.18) Set key/values to FOUserAgent.rendererOptions (for example pdf-a-mode to PDF/A-1b) |
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...