जावास्क्रिप्ट (Node.js) पर PDF रिपोर्ट जनरेशन
PDF दस्तावेज़ बनाना वेब डेवलपमेंट में सबसे अधिक मांग वाले कार्यों में से एक है। रिपोर्ट, चालान, प्रमाणपत्र, दस्तावेज़ीकरण - इन सबके लिए सर्वर-साइड जनरेशन के लिए एक विश्वसनीय उपकरण की आवश्यकता होती है। Node.js इकोसिस्टम में कई शक्तिशाली लाइब्रेरी मौजूद हैं जो लचीले ढंग से PDF फ़ाइलें बनाने की अनुमति देती हैं। इस लेख में हम तीन मुख्य दृष्टिकोणों पर विस्तार से चर्चा करेंगे: PDFKit (प्रत्यक्ष प्रोग्रामिंग), Puppeteer (HTML रेंडरिंग) और jsPDF (हल्का विकल्प)।
सर्वर पर PDF क्यों जनरेट करें?
- गतिशील सामग्री — डेटाबेस से डेटा, गणना, ग्राफ़।
- सुरक्षा — पहुँच नियंत्रण और संस्करण प्रबंधन।
- स्वचालन — शेड्यूल पर रिपोर्ट का सामूहिक वितरण।
- एकीकृत प्रारूप — सभी उपकरणों पर सही प्रदर्शन।
1. PDFKit — दस्तावेज़ पर पूर्ण नियंत्रण
PDFKit स्क्रैच से PDF बनाने के लिए सबसे लोकप्रिय लाइब्रेरी है। इसे ब्राउज़र की आवश्यकता नहीं है और यह पूरी तरह से JavaScript ऑब्जेक्ट के साथ काम करता है। आप प्रत्येक तत्व को नियंत्रित करते हैं: टेक्स्ट, चित्र, वेक्टर ग्राफ़िक्स, फ़ॉन्ट।
स्थापना
npm install pdfkitउदाहरण: तालिका के साथ सरल रिपोर्ट
const PDFDocument = require('pdfkit');const fs = require('fs');
const doc = new PDFDocument();
doc.pipe(fs.createWriteStream('report.pdf'));
// शीर्षकdoc.fontSize(24).text('मासिक रिपोर्ट', { align: 'center' });doc.moveDown();
// उपशीर्षकdoc.fontSize(14).text('अवधि: जनवरी 2025', { align: 'center' });doc.moveDown(2);
// तालिका (अनुकरण)doc.fontSize(12).font('Helvetica-Bold');doc.text('उत्पाद', 50, 150);doc.text('मात्रा', 250, 150);doc.text('मूल्य', 400, 150);
doc.font('Helvetica');const data = [ { item: 'लैपटॉप', qty: 15, price: 75000 }, { item: 'मॉनिटर', qty: 30, price: 25000 }, { item: 'कीबोर्ड', qty: 100, price: 1500 }];
let y = 170;data.forEach(row => { doc.text(row.item, 50, y); doc.text(String(row.qty), 250, y); doc.text(String(row.price), 400, y); y += 20;});
// कुलdoc.moveDown();doc.font('Helvetica-Bold');doc.text(`कुल: ${data.reduce((sum, r) => sum + r.qty * r.price, 0)} रु.`, 50, y + 20);
doc.end();PDFKit की क्षमताएँ:
- वेक्टर ग्राफ़िक्स (रेखाएँ, आयत, वृत्त)।
- फ़ॉन्ट एम्बेड करना (TrueType, OpenType)।
- Unicode और सिरिलिक लिपि के लिए समर्थन।
- लिंक और एनोटेशन बनाना।
2. Puppeteer — HTML को PDF में रेंडर करना
यदि आपके पास पहले से रिपोर्ट का HTML टेम्पलेट है (उदाहरण के लिए, Bootstrap पर), तो Puppeteer एक आदर्श विकल्प है। यह headless Chrome ब्राउज़र चलाता है और सभी स्टाइल, फ़ॉन्ट और JavaScript एनिमेशन को संरक्षित करते हुए पृष्ठ को PDF में परिवर्तित करता है।
स्थापना
npm install puppeteerउदाहरण: HTML टेम्पलेट का रूपांतरण
const puppeteer = require('puppeteer');
async function generatePDF() { const browser = await puppeteer.launch(); const page = await browser.newPage();
// CSS के साथ HTML const html = ` <!DOCTYPE html> <html> <head> <style> body { font-family: Arial; padding: 40px; } h1 { color: #2c3e50; } table { width: 100%; border-collapse: collapse; } th, td { border: 1px solid #ccc; padding: 8px; } </style> </head> <body> <h1>बिक्री रिपोर्ट</h1> <table> <tr><th>महीना</th><th>राशि</th></tr> <tr><td>जनवरी</td><td>450,000 रु.</td> पुस्तकालय में भी
जावास्क्रिप्ट (Node.js) के लिए HTTP-क्लाइंट: API के साथ काम करने के लिए शीर्ष लाइब्रेरी
GuzzleHTTP/Promises PHP: पूर्ण गाइड उदाहरणों के साथ
डिपेंडेंसी इंजेक्शन कंटेनर Swift: iOS/macOS के लिए Swinject
Swift Package Manager पूर्ण गाइड: Swift डेवलपर्स के लिए