Technologies

visionCATS’s report templating is based on standard Web technologies. The final report document is a PDF file, but it is first created as an HTML file.

HTML

HTML (HyperText Markup Language) defines the content and basic structure of a template. For reference, please see W3Schools HTML.

CSS

CSS (Cascading Style Sheets) defines the presentation of a template. For reference, please see W3Schools CSS.

Colors

A list of color names is available on W3Schools HTML Color Names and also a color picker on W3Schools HTML Color Picker.

SCSS

SCSS (Sassy CSS) is a flavor of CSS using Sass preprocessor language to add features like variable. For reference, please see sass-lang.com.

JavaScript

JavaScript is the programming language of the templates. For reference, please see W3Schools JavaScript.

visionCATS’s report templates use several JavaScript libraries to make the templating possible.

Note

All the needed libraries are preinstalled with visionCATS.

Handlebars

Handlebars is a templating language, written in JavaScript, to be used in the HTML files. For reference, please see handlebarsjs.com.

linq.js

linq.js (LINQ for JavaScript) is a JavaScript version of LINQ (Language-Integrated Query). It permits to easly query data for advanced templating. For reference, please see linq.js Reference.

Flot

Flot is a pure JavaScript plotting library. For reference, please see flotcharts.org.

SignalR and Metamorph

Some rare function are not availalbe on the HTML/JavaScript side, but deep in the visionCATS client application. Such function are accessed via SignalR, which handle the asynchronous communication. As Handlebars templates are rendered synchronously, the Metamorph librairy is used to reconciliate both systems.

Note

As the functions availalbe via SignalR are hardcoded, it is just possible to reuse the existing call in different places, but not add new function.

For more information, please see ASP.NET SignalR and Metamorph.js.

Other JavaScript libraries

Some other librairies are used, but most user created template would not use them directly.

  • JQuery

  • Moment.js

  • Numeral.js

wkhtmltopdf

wkhtmltopdf is an executable for rendering HTML to PDF. The options are not modifiable.

Important

An error in the template could block the rendering of wkhtmltopdf. After 3 minutes, the rendering process will be stopped, and then you should look at the wkhtmltopdf log and try the report inside a web browser, to determine the error.

Attention

Some antivirus may block wkhtmltopdf.exe. Please add wkhtmltopdf.exe to your white list if it is happening.

As wkhtmltopdf use an old version of webkit rendering engine, some feature are missing:

  • Some CSS3 features

  • 3D graphics like WebGL

  • Some Unicode characters (notably Thai script)

For more information, please see wkhtmltopdf.org.