pdf-master-ts
v1.0.1
Published
"npm package to generate static and dynamic PDFs in nodejs."
Downloads
153
Maintainers
Readme
PDF Master
All credits to the original author
The simplest way to generate static and dynamic PDF in NodeJS. Converts HTML(with .hbs
extension) template into
PDF.
Features
- Generate PDF from HTML file.
- Generate dynamic PDFs
- Add custom header and footer to PDF
Installation
To use PDF master in your project, run:
npm install pdf-master-ts
How to Use
Step 1 - Add required packages and generate a PDF
const express = require("express");
const pdfMaster = require("pdf-master-ts");
const app = express();
app.get("", async (req, res) => {
const pdf = await pdfMaster.generatePdf("pdfHtmlFormat.hbs");
res.contentType("application/pdf");
res.status(200).send(pdf);
});
generatePdf()
syntax and parameters
generatePdf(
templatePath, //<string>
data, //<object> Pass data to template(optional)
options //<object> PDF format options(optional)
);
Step 2 - Create your HTML Template (save the template with .hbs extension instead of .html)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
Render dynamic data in template and PDF format options
const express = require("express");
const pdfMaster = require("pdf-master-ts");
const app = express();
app.get("", async (req, res) => {
var students = {
{
id: 1,
name: "Sam",
age: 21
},
{
id: 2,
name: "Jhon",
age: 20
},
{
id: 3,
name: "Jim",
age: 24
}
}
let options = {
displayHeaderFooter: true,
format: "A4",
headerTemplate: `<h3> Header </h3>`,
footerTemplate: `<h3> Copyright 2023 </h3>`,
margin: { top: "80px", bottom: "100px" },
};
let PDF = await pdfMaster.generatePdf("template.hbs", students, options);
res.contentType("application/pdf");
res.status(200).send(PDF);
});
template for the above example (save the template with .hbs extension)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
</head>
<body>
<h1>Student List</h1>
<ul>
{{#each students}}
<li>Name: {{this.name}}</li>
<li>Age: {{this.age}}</li>
<br />
{{/each}}
</ul>
</body>
</html>
Resources
Contributing
Feel free to contribute. Your contribution will be appreciated.
License
pdf-master-ts is MIT licensed.