Carbone Engine

How it works?

Carbone is a mustache-like template engine {d.companyName}.

See the template language documentation

  • The template can be any XML-document coming from LibreOffice™ or Microsoft Office™ (ods, docx, odt, xslx...)
  • The injected data must be a JSON object or array, coming directly from your existing APIs for example

Carbone analyzes your template and inject data in the document. The generated document can be exported as is, or converted to another format (PDF, ...) using LibreOffice if it is installed on the system.

Minimum Requirements

  • NodeJS 4.x+
  • LibreOffice, if you want to use the document converter and generate PDF
  • Runs on OSX, Linux (servers and desktop), and coming soon on Windows

Getting started

Basic sample

1 - Install it

  npm install carbone

2 - Copy-paste this code in a new JS file, and execute it with node

  const fs = require('fs');
  const carbone = require('carbone');

  // Data to inject
  var data = {
    firstname : 'John',
    lastname : 'Doe'

  // Generate a report using the sample template provided by carbone module
  // This LibreOffice template contains "Hello {d.firstname} {d.lastname} !"
  // Of course, you can create your own templates!
  carbone.render('./node_modules/carbone/examples/simple.odt', data, function(err, result){
    if (err) {
      return console.log(err);
    // write the result
    fs.writeFileSync('result.odt', result);

More documention on Github