html2pdf-ts
Version:
Convert HTML to PDF.
135 lines (101 loc) • 3.14 kB
Markdown
//img.shields.io/npm/v/html2pdf-ts.svg)](https://npmjs.org/package/html2pdf-ts)
[](https://npm-stat.com/charts.html?package=html2pdf-ts&from=2017-01-1)
[](https://npm-stat.com/charts.html?package=html2pdf-ts&from=2017-01-1)
<!-- [END badges] -->
Simple lib to convert HTML to PDF, using puppeteer and [qpdf](https://github.com/qpdf/qpdf) to protect him with password.
This package have the following features:
- [x] Simple convert HTML to PDF;
- [x] Convert HTML to PDF and protect it with password;
- [x] Queue to convert HTML to PDF one per time, saving memory.
First of all, install [qpdf](https://github.com/qpdf/qpdf) in your OS.
```javascript
npm i html2pdf-ts
```
```javacript
yarn add html2pdf-ts
```
To execute an example, just run:
```javascript
npm run start
```
or
```javascript
yarn start
```
Using the package:
The example below is for executing just 1 conversion, and it happens immediately.
```javascript
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
```javascript
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.
To execute tests run:
```
yarn test
```
With coverage:
```
yarn test:cov
```
Released under the MIT License.
<!-- [START badges] -->
[![NPM html2pdf-ts package](https: