npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ooconvert

v1.0.11

Published

Typescript standalone Open Office file conversion originally from the excellent Carbone project

Downloads

1

Readme

npm Gitlab pipeline status npm NPM

OOconvert

Convert Libreoffice documents into any format supported (PDF, DOCX, XLSX, ODT, HTML etc ...)

This module was based on the conversion code that is part of the excellent Carbone.io templating system.
Completely rewritten in Typescript, ooconvert controls a configurable pool of python worker processes that interface with a local installation of libreoffice.

Prerequisites

  • Libre Office
    For the conversion process the library requires an installation of Libre Office (tested with v6.3.2).
    Free installation is available at their website www.libreoffice.org

  • python
    IMPORTANT! Detects and uses the python installation embedded in Libre Office. May work with external python but not tried yet

  • NodeJS

  • Tested on Linux and Windows

Installation

npm install ooconvert --save

Example Usage

The format used in the examples below is writer_pdf_Export which converts the document into a pdf.

The library supports all the filters of libre office. For a (probably out of date) listing please see the page here

Typescript

Note: You may need to install the typings for nodejs using npm i @types/node --save-dev

import { promises as fs_promises } from "fs";
import { OOConvert } from "ooconvert";

console.log(`Converting file...`);
 
const conv2 = new OOConvert({ factories: 1 });

conv2.convertFile("test.odt", 'writer_pdf_Export', '')
.then((buffer) => fs_promises.writeFile('test.pdf', buffer))
.then(() => console.log(`Done`))
.catch((err) => console.error(err))
.then(() => conv2.exit());

Javascript

var fs = require("fs");
var OOConvert = require("ooconvert").OOConvert;

console.log(`Converting file...`);

var conv2 = new OOConvert({ factories: 1 });

conv2.convertFile("test.odt", 'writer_pdf_Export', '')
.then((buffer) => new Promise((resolve, reject) => fs.writeFile("test.pdf", buffer, (err) => {
  if (err) reject(err);
  resolve();
})))
.then(() => console.log("Done"))
.catch((err) => console.error(err))
.then(() => conv2.exit())

API Reference

convertFile(inputFile, outputType, formatOptions, outputFilepath)

  • inputFile <string>: path to the file you wish to convert
  • outputType <string>: name of the Libre Office filter to use for conversion
  • formatOptions <string>: optional parameter for additional options specific to the chosen filter
  • outputFilepath <string>: optional parameter path to specify the full path to the destination to save the result. Defaults to temp random name in the user's temp directory

Running the tests

The library uses mocha and chai for unit testing. To run the tests is as simple as running
npm test

The library can output debug console messages thanks to the debug library. To use simply set the DEBUG environment variable:

On Windows
  set DEBUG=ooconv
On Linux
  export DEBUG=ooconv

Contributing

Please read CONTRIBUTING.md for details and the process for submitting pull requests.

Versioning

SemVer is used for versioning. For the versions available, see the tags on this repository.

Contributors