JSONPDFKIT is a Node.js library that allows you to generate professional PDF reports from JSON data or API responses. It supports features like:
- Headers & Footers
- Tables with Auto Pagination
- Inline & Remote Images
- Custom Formatting & Page Numbering
npm install jsonpdfkitconst { generatePDF } = require("jsonpdfkit");
async function createPDF() {
const jsonData = {
header: { text: "Business Report - 2025" },
footer: { text: "Generated by JSONPDFKIT Library" },
company: "Acme Inc.",
description: "Annual financial and operations report for Acme Inc.",
images: [
{
url: "https://source.unsplash.com/300x200/?business",
x: 50,
y: 100,
width: 200,
height: 150,
},
],
financial_summary: [{ Year: "2024", Revenue: "$50M", Profit: "$10M" }],
};
const outputPath = await generatePDF(jsonData, {
format: "a4",
orientation: "portrait",
fontType: "times",
fontSize: 14,
pageNumbering: true,
header: {
text: "Company Financial Report",
align: "center",
fontSize: 16,
color: [0, 0, 0],
},
footer: {
text: "Confidential Document",
align: "right",
fontSize: 10,
color: [100, 100, 100],
},
images: [
{
path: "path/to/local/image.png",
x: 50,
y: 100,
width: 200,
height: 150,
},
],
});
console.log("✅ PDF Created:", outputPath);
}
createPDF();- 📄 Multi-Page PDF Support (Auto Page Breaks)
- 📊 Tables with Data Parsing
- 🖼 Image Embedding from URL or Local Files
- 📌 Header & Footer Support
- 🖋 Custom Fonts & Styling
- 🔢 Automatic Page Numbering
- 🎨 Custom Colors & Font Sizes
| Option | Type | Default | Description |
|---|---|---|---|
format |
String | "a4" | Page format ("a4", "letter", "legal") |
orientation |
String | "portrait" | Page layout ("portrait", "landscape") |
fontType |
String | "times" | Font type |
fontSize |
Number | 14 | Text size in points |
pageNumbering |
Boolean | true |
Adds page numbers |
header |
Object | null |
Custom header text, alignment, font size, color |
footer |
Object | null |
Custom footer text, alignment, font size, color |
images |
Array | [] |
Embed images (URLs or local paths) |
{
text: "Report Header", // Text for header/footer
align: "center", // Alignment ("left", "center", "right")
fontSize: 14, // Font size in points
color: [0, 0, 0], // RGB color array
}{
path: "path/to/image.png", // Local image path (if applicable)
url: "https://example.com/image.jpg", // Remote image URL
x: 50, // X-coordinate in points
y: 100, // Y-coordinate in points
width: 200, // Image width in points
height: 150 // Image height in points
}This project is open-source and available under the MIT License.
For any issues, create an issue in the repository or contact the maintainer.
🚀 Happy Coding & PDF Generation!