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

@bcgov/carbone-render

v2.2.2

Published

Async wrapper around Carbone render

Downloads

380

Readme

[Deprecated] carbone-render

Note: This package has been deprecated and will no longer be receiving support updates.

npm downloads License img

Library to generate a document from an existing template and JSON data. This is a wrapper around carbone, please refer to their documentation for more detail.

Prerequisites

This library will require LibreOffice installed to do pdf generation.

Installation

npm i @bcgov/carbone-render

Usage

const carboneRenderer = require('@bcgov/carbone-render');

startFactory

Optional call to start up the carbone python converter. This is recommended to call on the start of your application. Otherwise, the first call to render will take longer as it starts the converter in the background.

carboneRenderer.startFactory();

fileTypes

Return a dictionary of allowable file conversions. Convert to pdf is always allowed.

const allowedConversions = carboneRenderer.fileTypes;

Returns dictionary

{
    "csv": [
        "doc",
        "docx",
        "html",
        "odt",
        "pdf",
        "rtf",
        "txt",
        "csv"
    ],
    "docx": [
        "doc",
        "docx",
        "html",
        "odt",
        "pdf",
        "rtf",
        "txt"
    ],
    "html": [
        "html",
        "odt",
        "pdf",
        "rtf",
        "txt"
    ],
    "odt": [
        "doc",
        "docx",
        "html",
        "odt",
        "pdf",
        "rtf",
        "txt"
    ],
    "pptx": [
        "odt",
        "pdf"
    ],
    "rtf": [
        "docx",
        "pdf"
    ],
    "txt": [
        "doc",
        "docx",
        "html",
        "odt",
        "pdf",
        "rtf",
        "txt"
    ],
    "xlsx": [
        "odt",
        "pdf",
        "rtf",
        "txt",
        "csv",
        "xls",
        "xlsx"
    ]
}

async render

Generate a new document from a template and JSON data. Render the report.

const data = {
    "firstName": "Jane",
    "lastName": "Smith",
    "title": "Who?"
};

const options = {
    "convertTo": "pdf",
    "reportName": "{d.firstName}-{d.lastName}.docx",
    "overwrite": "true",
    "cacheReport": "true"
};

const formatters = {
    // this formatter can be used in a template with {d.myBoolean:yesOrNo()}
    yesOrNo : function (data) { // data = d.myBoolean
        if (this.lang === 'fr') {
            return data === true ? 'oui' : 'non';
        }
        return data === true ? 'yes' : 'no';
    }
};

const output = await carboneRenderer.render(template.path, data, options, formatters);

| Parameters | Description | | --- | --- | | template | template file | | data | object or array of objects used in the template | | options | Options object to pass to carbone. See carbone documenation. | | options.convertTo | What file type to convert to, see fileTypes or pdf | | options.reportName | Name of the generated report, should include expected extension. Can contain template placeholders, see carbone documentation. | | formatters | Object. Additional formatters to add to carbone. See carbone documenation. |

Returns object

{
    "success": false,
    "errorType": null,
    "errorMsg": null,
    "reportName": null,
    "report": null
}

| Field | Description | | --- | --- | | success | boolean, true indicates report generated, false otherwise | | errorType | number - error number if not successful. | | errorMsg | string - error message if not successful. | | reportName | string - name of the generated report | | report | binary - generated file |