Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Installation

The Document Renderer Service can be installed using the installer. After installation, the configuration can be found in the <blueriq installation home>\Services\document-renderer\Properties folder.

Supported platforms

The service is supported for Windows and Linux, it is delivered in a self-contained executable. The platforms platform binaries can be found in the download zip under the \Services\document-renderer folder. Both the Windows and Linux executables are configured to be run as services on the supported platforms.

Windows 

The Document Renderer Service can be run directly on Windows by executing BlueriqDocumentRenderer.API.exe or by registering it as a Windows Service.

Linux

The Document Renderer Service can be run directly on Linux by executing BlueriqDocumentRenderer.API, we also have provided a service template which needs to be configured for when registering the service as a daemon.

Table of Contents

System requirements

Minimal

2 CPU cores
512 MB 1 GB RAM

Recommended

2 CPU cores
1,5 GB RAM


Warning
titleDisclaimer

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 SystemDefault 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
languageyml
titleConfig
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.

Image Added

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
languagejs
titleConfiguration example for loading certificate (.pem/.crt with .key file) from disk
// 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
languagejs
titleConfiguration example for loading certificate (.pfx file) from disk
// 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
languagejs
titleConfiguration example for loading certificate from a Certificate Store
{
  "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
languagejs
titleConfiguration port overriding
{
  "urls": "http://*:8099"
}

Authentication

You can create a user and password that any caller of the API has to provide.

Code Block
titleAuthentication Configuration
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.Image Removed