You are viewing the documentation for Blueriq 17. Documentation for other versions is available in our documentation directory.
System requirements
Minimal
2 CPU cores
1 GB RAM
Recommended
2 CPU cores
1,5 GB RAM
Disclaimer
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 uses Ibex PDF Creator to render PDF documents.
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\Resources\documents
folder.
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 TrueType (.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/'. This folder, and subfolders will be recursively scanned while looking for fonts for the document renderer, and can be used in the documents.
blueriq: documents: baseFolder: Resources/ xsltStyleSheet: documents/ibex/styles.xsl fonts: location: documents/fonts/ aliasList: fontawesome regular: fontawesome font_id_xslt: fontname allowList: - fontawesome-webfont.ttf - myCustomFont.ttf
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 might look like the font is registered 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.
Font AllowList
By default not all fonts from the system are loaded as this would result in quite some extra RAM usage. The AllowList normally only contains entries for the fonts actually being used in your documents.
It is possible to use simple file expressions containing *
and ?
but be careful as this might severely impact RAM usage when too much fonts are loaded.
When a document uses a font that can not be loaded, the default Helvetica font is used.
The default AllowList contains entries for the default fonts shipped with the Document Renderer:
blueriq: documents: fonts: allowList: - fontawesome-webfont.ttf - Roboto-Bold.ttf - Roboto-BoldItalic.ttf - Roboto-Italic.ttf - Roboto-Regular.ttf - RobotoMono-Regular.ttf
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.
// 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": { // .... // } } } }
// 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": { // .... // } } } }
{ "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.
{ "urls": "http://*:8099" }
Authentication
You can create a user and password that any caller of the API has to provide.
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.