node-odt
A node js tool to work with OpenDocument text files.
Install
$ npm install odt
Usage
var fs = odt = template = odttemplate createWriteStream = fscreateWriteStreamvar doc = 'mytemplate.ott';var values = 'subject': type: 'string' value: 'My subject value' ; // apply values ;
This example can be written much easier using the convenience methods pipe()
and finalize()
.
var fs = odt = template = odttemplate createWriteStream = fscreateWriteStreamvar doc = 'mytemplate.ott';var values = 'subject': 'My subject value' ; // apply values ;
For a more advanced example see the command line utility in bin/node-odt
.
API
Template(arg : String|Stream)
The main class to work with templates. arg
can be a path to the odt file or
a stream with the odt contents. Template
inherits from EventEmitter
and
fires the following events:
events
error
- Fired if an error occurs.end(document)
- Fired when the document is complete.
.apply(values : Object)
Applies the values to the template. values
is an object of the following
form:
"field-name": "type": "field-type" "value": "field-value"
e.g.
"subject": "type": "string" "value": "My subject" ...
Supported data types
string
- This type is well supported and does what you think.date
- This type can be either an unix timestamp (Number
) or a javascriptDate
.cent
- This type should have an integer as value which is converted into a float representing theEuro
currency.
.apply(handler : Function)
Registers a handler to modify the content. handler
is a function of the form
function(content, done)
while content
is the parsed xml data of the
content.xml
file in the document archive. done
is a function
which needs
to be called upon completion.
.pipe(stream : Stream)
Pipes the archive to stream
.
.finalize(done : Function)
Register a handler on the 'finalized' event. This was formerly needed to launch the finalization of the archive. But this is done automatically now.
Bundled handlers
Table handler
This handler applies a table template to a table defined by libreoffice.
Warning: This part of the code is yet pretty unstable and might be changed in future. Use it carefully.
Usage
var odt = table = table;odt ...