An open API service indexing awesome lists of open source software.

https://github.com/hajareshyam/pdf-creator-node

This package is used to generate HTML to PDF in Nodejs
https://github.com/hajareshyam/pdf-creator-node

html-pdf html-template node pdf pdf-converter pdf-creator pdf-generation

Last synced: 2 months ago
JSON representation

This package is used to generate HTML to PDF in Nodejs

Awesome Lists containing this project

README

        

# Follow these steps to convert HTML to PDF

- Step 1 - install the pdf creator package using the following command

`$ npm i pdf-creator-node --save`

> --save flag adds package name to package.json file.

- Step 2 - Add required packages and read HTML template

```javascript
//Required package
var pdf = require("pdf-creator-node");
var fs = require("fs");

// Read HTML Template
var html = fs.readFileSync("template.html", "utf8");
```

- Step 3 - Create your HTML Template

```html




Hello world!


User List



    {{#each users}}
  • Name: {{this.name}}

  • Age: {{this.age}}



  • {{/each}}



```

- Step 4 - Provide format and orientation as per your need

> "height": "10.5in", // allowed units: mm, cm, in, px

> "width": "8in", // allowed units: mm, cm, in, px

- or -

> "format": "Letter", // allowed units: A3, A4, A5, Legal, Letter, Tabloid

> "orientation": "portrait", // portrait or landscape

```javascript
var options = {
format: "A3",
orientation: "portrait",
border: "10mm",
header: {
height: "45mm",
contents: '

Author: Shyam Hajare
'
},
footer: {
height: "28mm",
contents: {
first: 'Cover page',
2: 'Second page', // Any page number is working. 1-based index
default: '{{page}}/{{pages}}', // fallback value
last: 'Last Page'
}
}
};
```

- Step 5 - Provide HTML, user data and PDF path for output

```javascript
var users = [
{
name: "Shyam",
age: "26",
},
{
name: "Navjot",
age: "26",
},
{
name: "Vitthal",
age: "26",
},
];
var document = {
html: html,
data: {
users: users,
},
path: "./output.pdf",
type: "",
};
// By default a file is created but you could switch between Buffer and Streams by using "buffer" or "stream" respectively.
```

- Step 6 - After setting all parameters, just pass document and options to `pdf.create` method.

```javascript
pdf
.create(document, options)
.then((res) => {
console.log(res);
})
.catch((error) => {
console.error(error);
});
```

### If Conditional Checks
You can do conditional checks by calling helper block _ifCond_ example

```js
{{#ifCond inputData "===" toCheckValue}}
```

```html




Hello world!


User List



    {{#each users}}
  • Name: {{this.name}}

  • Age: {{#ifCond this.age '===' '26'}}



  • {{/ifCond}}
    {{/each}}



```

Can check variables with different type ie _string_, _integer_, _boolean_, _double_

Other logical operators are-:

- ==
```js
{{#ifCond inputData "==" toCheckValue}}
```
- ===
```js
{{#ifCond inputData "===" toCheckValue}}
```
- !=
```js
{{#ifCond inputData "!=" toCheckValue}}
```
- !==
```js
{{#ifCond inputData "!==" toCheckValue}}
```
- <
```js
{{#ifCond inputData "<" toCheckValue}}
```
- <=
```js
{{#ifCond inputData "<=" toCheckValue}}
```
- '>
```js
{{#ifCond inputData ">" toCheckValue}}
```
- '>=
```js
{{#ifCond inputData ">=" toCheckValue}}
```
- &&
```js
{{#ifCond inputData "&&" toCheckValue}}
```
- ||
```js
{{#ifCond inputData "||" toCheckValue}}
```

##NOTE!!
You can only match 2 variables

### End

### License

pdf-creator-node is [MIT licensed](./LICENSE).