Page History
System requirements
Minimal
2 CPU cores
512 MB 1 GB RAM
Recommended
2 CPU cores
1,5 GB RAM
Warning | ||
---|---|---|
| ||
System requirements can differ based upon the document size which needs to be rendered. The Document Renderer Service will load the images which are send in the rendering request into its memory, therefore if the document renderer service is used to render documents containing high-resolution images the system's requirements needs to be adjusted accordingly. When running in a container the Document Renderer can run into OOM exceptions when the GC isn't set properly or it just needs some more memory. For more information : https://learn.microsoft.com/en-us/aspnet/core/performance/memory?view=aspnetcore-8.0 & https://learn.microsoft.com/en-us/dotnet/core/runtime-config/garbage-collector?source=recommendations#high-memory-percent |
Linux OS
The Document Renderer Service requires that the OS has the following libraries installed: CURL, ICU, without these libraries installed on the OS the Document Renderer Service is unable to start and will display an error message stating that these libraries needs to be installed.
Third party tools
Ibex
The Document Renderer Service used Ibex PDF Creator to renderer PDF documents with.
Configuration
Property Encryption
Any property value can be encrypted with the Blueriq Encryption tool.
More information on how can be found here: Property encryption - Blueriq Latest - Blueriq Community
Document templates
Blueriq delivers default templates for rendering Blueriq Documents. You can to customize these templates to fit the look-and-feel of your company. The templates can be found in the <blueriq installation home>\Services\document-renderer\PropertiesResources\documents
folder.
Note |
---|
To customize the rendering files you need to have knowledge about XSL and XSL:FO. |
Font Configuration
By default the OS fonts folder (where the Document Renderer Service is hosted) will be scanned for available fonts which can be used in the PDF generation. Only ttf and ttc fonts are supported.
Operation System | Default font folder |
---|---|
Windows | C:\windows\fonts |
Linux | \usr\share\fonts |
Custom font directory
Custom fonts can be added by setting the 'fonts:location' property. This property is a relative path from the 'blueriq:documents:baseFolder'. In the properties example below the custom fonts location is set to 'Resources/documents/fonts/'. All fonts in this folder, and subfolders will be recursively added to the document renderer, and can be used in the documents.
Code Block | ||||
---|---|---|---|---|
| ||||
blueriq: documents: baseFolder: Resources/ xsltStyleSheet: documents/ibex/styles.xsl fonts: location: documents/fonts/ aliasList: fontawesome regular: fontawesome font_id_xslt: fontname |
Font Alias
When the fontname doesn't match the used id in the XSLT, an alias can be set for the font.
For example : Although it looks like the font is registered in windows under the name 'fontawesome regular', it actually is 'fontawesome'. In the XSLT the font is used with the id 'fontawesome regular' so an alias has to be used for the document renderer to match the font. As much aliases can be registered as needed. First is the key used in the XSTL, value is the fontname which is referred to.
Logging
The Blueriq Document Renderer Service uses Serilog for logging. Serilog configuration is read from the Serilog section in the <blueriq installation home>\Services\document-renderer\Properties\blueriq-document-renderer.yml
file. For more information on Serilog configuration options, consult the Serilog configuration documentation.
The Blueriq Document Renderer Service supports the Console
and the File
sink.
HTTPS
By default, the Document Renderer uses HTTP. It can be configured to use HTTPS instead by changing the Properties/hostsettings.json file. Certificates can either be loaded from a Certificate Store (Windows) or from a file on disk. Below you will find an example for both cases. It is also possible to configure multiple endpoints that use different certificates. For more examples, please refer to the Kestrel documentation.
Code Block | ||||
---|---|---|---|---|
| ||||
// Javascript-style comments are allowed in the hostsettings.json file
{
"Kestrel": {
"Endpoints": {
"Https": {
// Configure host name and port
"Url": "https://example.com:443",
"Certificate": {
"Path": "C:/certs/cert.pem",
"KeyPath": "C:/certs/cert.key",
// Please note that the `password` property is optional
"Password": "P4ssw0rd!"
}
}
// Additional endpoints could be specified here:
// , "Example": {
// ....
// }
}
}
} |
Code Block | ||||
---|---|---|---|---|
| ||||
// Javascript-style comments are allowed in the hostsettings.json file
{
"Kestrel": {
"Endpoints": {
"Https": {
// Configure host name and port
"Url": "https://example.com:443",
"Certificate": {
"Path": "C:/certs/cert.pfx",
// Please note that the `password` property is optional
"Password": "P4ssw0rd!"
}
}
// Additional endpoints could be specified here:
// , "Example": {
// ....
// }
}
}
} |
Code Block | ||||
---|---|---|---|---|
| ||||
{
"Kestrel": {
"Endpoints": {
"Example": {
"Url": "https://localhost:443",
"Certificate": {
"Subject": "localhost", // Subject name
"Store": "WebHosting", // Keystore name
"Location": "LocalMachine", // Location of the keystore
"AllowInvalid": "true" // Allows invalid (e.g. self-signed) certificates
}
}
}
}
} |
Dynamic images
The Document Renderer Client component provides support for adding dynamic images to .a document.
Port configuration
By default, the Document Renderer uses HTTP and is configured to run on port 8099, these settings can be overridden and are found in the Properties/hostsettings.json file.
Code Block | ||||
---|---|---|---|---|
| ||||
{
"urls": "http://*:8099"
} |
Authentication
You can create a user and password that any caller of the API has to provide.
Code Block | ||
---|---|---|
| ||
blueriq:
authentication:
username: blueriq
password: "{bcrypt}$2a$10$E/MZ1O2t/wU9TTCubVZgX.c6AFdFEUSYs7QJ.Ia2kyGd/msjEkERq" |
As you can see above the password can be hashed with bcrypt. Use your own tool to hash the password (it must use bcrypt). No other hashing algorithms are supported at this time.
You can also opt to not use hashing by placing "{noop}" in front of the pasword value. This is not recommended for production environments.