vitorric / html2pdf

MIT License
10 stars 0 forks source link

HTML2PDF-TS

NPM badges

NPM html2pdf-ts package npm downloads npm downloads

Simple lib to convert HTML to PDF, using puppeteer and qpdf to protect him with password.

This package have the following features:

Install

First of all, install qpdf in your OS.

npm i html2pdf-ts
yarn add html2pdf-ts

Example

To execute an example, just run:

npm run start

or

yarn start

Using the package:

The example below is for executing just 1 conversion, and it happens immediately.

import { promises as fs } from 'fs';

import { html2pdf } from '../src/index';
import { HTML2PDFOptions } from '../src/types';

const exampleSingleConversion = async () => {
  const html = await fs.readFile('./example/page.html', 'utf-8');
  const options: HTML2PDFOptions = {
    format: 'A4',
    filePath: './example/example.pdf',
    landscape: false,
    protect: {
      password: '1234',
    },
    resolution: {
      height: 1920,
      width: 1080,
    },
  };

  await html2pdf.createPDF(html, options);
  console.log('PDF Generated...');
};

exampleSingleConversion();

In this other example, the queue is already used to control the conversion of HTML's into PDF's

const exampleMultipleConversion = async () => {
  const array = Array.from({ length: 51 }, (_, i) => i);
  const html = await fs.readFile('./example/page.html', 'utf-8');

  for await (const i of array) {
    const options: HTML2PDFOptions = {
      format: 'A4',
      filePath: `./example/multiples/example_${i}.pdf`,
      landscape: false,
      protect: {
        password: '1234',
      },
      resolution: {
        height: 1920,
        width: 1080,
      },
    };

    await html2pdf.addToQueue(html, options);
  }

  await html2pdf.createPDF(html, {
    format: 'A4',
    filePath: `./example/multiples/another.pdf`,
    landscape: false,
    protect: {
      password: '1234',
    },
    resolution: {
      height: 1920,
      width: 1080,
    },
  });
};

To create the PDF without password, just remove the param protect from options.

In addition, you can read a html file and pass the content to create the PDF, or just pass a pure HTML as param.

Tests

To execute tests run:

yarn test

With coverage:

yarn test:cov

License

Released under the MIT License.