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>
</dependency>
URI format
Output Formats
The primary output format is PDF but other output formats are also supported:
| name | outputFormat | 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 |
|---|
| userConfigURL | none | The location of a configuration file with the following structure |
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...
See Also