Node.js6 min read

PDF Generation with PDFKit

Generate PDFs in Node.js. Create invoices and reports.

Michael Torres
December 19, 2025
0.0k0

PDF Generation with PDFKit

Setup

```bash npm install pdfkit ```

Basic PDF

```javascript const PDFDocument = require('pdfkit'); const fs = require('fs');

const doc = new PDFDocument();

doc.pipe(fs.createWriteStream('output.pdf'));

doc.fontSize(25).text('Hello World!', 100, 100);

doc.addPage() .fontSize(15) .text('Second page', 100, 100);

doc.end(); ```

Invoice Example

```javascript function generateInvoice(invoice, res) { const doc = new PDFDocument({ margin: 50 }); doc.pipe(res); doc.fontSize(20).text('INVOICE', 50, 50); doc.fontSize(10).text(`Invoice #: ${invoice.id}`, 50, 80); doc.moveTo(50, 120).lineTo(550, 120).stroke(); doc.fontSize(12).text('Bill To:', 50, 140); doc.fontSize(10).text(invoice.customer.name, 50, 160); doc.end(); }

app.get('/invoice/:id', async (req, res) => { const invoice = await Invoice.findById(req.params.id); res.setHeader('Content-Type', 'application/pdf'); res.setHeader('Content-Disposition', `attachment; filename=invoice-${invoice.id}.pdf`); generateInvoice(invoice, res); }); ```

Key Takeaway

PDFKit creates PDFs programmatically. Pipe to response for downloads. Good for invoices and reports.

#Node.js#PDF#PDFKit#Documents