HTML to PDF allows the creation of files in PDF format from a HTML.
Besides, the component uses Apache FreeMaker templates to generate the HTML through the pipeline JSON message.
Take a look at the configuration parameters of the component:
- File Name: name of the PDF file to be generated in the output of the component execution.
- Body: HTML template to be interpreted to generate the PDF file (this field supports the FreeMarker template).
- Fail On Error: if the option is activated, the execution of the pipeline with error will be interrupted; otherwise, the execution of the pipeline continues, but the result will show a false value for the success property.
Messages flow
Input
The component accepts any input message, being able to use it through Double Braces.
Output
- successful
{
"success": true,
"fileName": "pdf_gerado.pdf",
}
- unsuccessful
{
"success": false,
"message": "Could not generate the pdf file",
"error": "java.net.IOException"
}
Example of request response with error
{
"success": false,
"message": "Could not generate the pdf file",
"error": "java.net.IOException:"
}
- success: “false” when the operation fails
- message: message about the error
- exception: information about the occurred error
Example:
Body
<p>We have these animals:
<table border=1>
<#list animals as animal>
<tr><td>${animal.name}<td>${animal.price} Euros
</#list>
</table>
Therefore, in the input message an object array is received and it has the properties “name” and “price”:
[
{ "name": "Dog", "price": 100},
{ "name": "Cat", "price": 100},
{ "name": "Bird", "price": 30},
]
The template will make the iteration in this received array and fill the HTML:
<p>We have these animals:
<table border=1>
<tr><td>Dog<td>$100 Euros
<tr><td>Cat<td>$100 Euros
<tr><td>Bird<td>$30 Euros
</table>
IMPORTANT:
- SVG
To use the SVG as HTML tag, apply the following property inside the SVG tag (xmlns="http://www.w3.org/2000/svg"):
<svg xmlns="http://www.w3.org/2000/svg" width="400" height="180">
<rect x="50" y="20" rx="20" ry="20" width="150" height="150" style="fill:red;stroke:black;stroke-width:5;opacity:0.5" />
Sorry, your browser does not support inline SVG.
</svg>
- CSS
Versions after 2.1 aren't supported.
- IMAGES
The use if imagens in base64 format inside HTML tags isn't supported.
Eg.: <img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAA…>
You can use images with local and remote reference:
- Local Image
<img src="image.jpg" alt="IMAGE2" >
In the example above, there must be a image file with the exact same name specified inside the src tag (image.jpg)
- Remote Image
<img src="https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_92x30dp.png" alt="IMAGE2" >