converter-pdf-html
Version:
convert HTML to PDF
125 lines (101 loc) • 3.02 kB
Markdown
- Step 1 - install the converter-pdf-html package using the following command
`$ npm i converter-pdf-html --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("converter-pdf-html");
var fs = require("fs");
// Read HTML Template
var html = fs.readFileSync("template.html", "utf8");
```
- Step 3 - Create your HTML Template
```html
<!DOCTYPE html>
<html>
<head>
<mate charest="utf-8" />
<title>Watch Anime Whole Day</title>
</head>
<body>
<h1>Anime List</h1>
<ul>
{{
<li>Name: {{anime.name}}</li>
<li>Age: {{anime.seen}}</li>
<br />
{{/each}}
</ul>
</body>
</html>
```
- 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 opt = {
format: "A3",
orientation: "portrait",
border: "10mm",
header: {
height: "45mm",
contents: '<div style="text-align: center;">Author: Arpan Das</div>'
},
footer: {
height: "28mm",
contents: {
first: 'Cover page',
2: 'Second page', // Any page number is working. 1-based index
default: '<span style="color: #444;">{{page}}</span>/<span>{{pages}}</span>', // fallback value
last: 'Last Page'
}
}
};
```
- Step 5 - Provide HTML, user data and PDF path for output
```javascript
var anime = [
{
name: "Naruto",
seen: "yes",
},
{
name: "My hero Academia",
seen: "yes",
},
{
name: "Vitthal",
seen: "No",
},
];
var doc = {
html: html,
data: {
anime: anime,
},
path: "./your.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
.convert(doc, opt)
.then((res) => {
console.log(res);
})
.catch((error) => {
console.error(error);
});
```
If you want to use conditions in your HTML template, check this out:
- https://handlebarsjs.com/builtin_helpers.html
pdf-converter is [MIT licensed](./LICENSE).