Files
2025-07-16 18:59:35 +01:00

30 lines
923 B
JavaScript

const express = require("express");
const router = express.Router();
const fs = require("fs");
const path = require("path");
const pdf = require("html-pdf-node");
router.get("/:code", async (req, res) => {
const { amount = 1, service = "software service" } = req.query;
// Read the invoice template
const templatePath = path.join(__dirname, "../invoice.html");
let html = fs.readFileSync(templatePath, "utf8");
// Replace placeholders in the template
html = html
.replace("Website design", service)
.replace("$300.00", `$${amount}.00`)
.replace("Total: $385.00", `Total: $${amount}.00`);
// Generate PDF
let file = { content: html };
pdf.generatePdf(file, { format: "A4" }).then((pdfBuffer) => {
res.setHeader("Content-Type", "application/pdf");
res.setHeader("Content-Disposition", "attachment; filename=invoice.pdf");
res.send(pdfBuffer);
});
});
module.exports = router;