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.