domachine
domachine

Reputation: 1159

Generate libreoffice text document programmatically from template

I'm trying to find a way to generate an .odt document from an .ott template programmatically. This should be done programmatically. Any ideas on how to achieve this?

I found some ways of generating .odt files in Java (http://incubator.apache.org/odftoolkit/odfdom/index.html) but there seems no possibility to generate a document from an .ott template.

The implementing language is more or less irrelevant but the best would be JavaScript on Node.js.

Thanks for your help in advance.

Upvotes: 9

Views: 4772

Answers (2)

Christopher Ramírez
Christopher Ramírez

Reputation: 1720

I wrote an utility in python called Secretary to create ODT documents from ODT templates. You can check it at https://github.com/christopher-ramirez/secretary maybe it could help you. The next version will support adding images to rendered documents.

Upvotes: 3

Diosney
Diosney

Reputation: 10580

Have you checked node-odt? It seems to me it supports what you need.

According with its documentation:

A node js tool to work with OpenDocument text files.

and one of its example:

var fs = require('fs')
  , odt = require('odt')
  , template = odt.template
  , createWriteStream = fs.createWriteStream
var doc = 'mytemplate.ott';
var values = { 'subject': 'My subject value' };

// apply values

template(doc)
  .apply(values)
  .on('error', function(err){
    throw err;
  })
  .finalize(function(bytes){
    console.log('The document is ' + bytes + ' bytes large.');
  })
  .pipe(createWriteStream('mydocument.odt'))
  .on('close', function(){
    console.log('document written');
  });

Upvotes: 2

Related Questions