JavaScript (Node.js) में PDF जनरेशन: लाइब्रेरी और टूल्स के लिए पूर्ण गाइड
PDF दस्तावेज़ों का निर्माण वेब डेवलपमेंट में सबसे अधिक मांग वाले कार्यों में से एक है। चालान और रिपोर्ट बनाने से लेकर जटिल बहु-पृष्ठ दस्तावेज़ तैयार करने तक, Node.js PDF के साथ काम करने के लिए शक्तिशाली टूल प्रदान करता है। इस लेख में, हम सर्वर-साइड JavaScript पर PDF फ़ाइलें बनाने के लिए मुख्य लाइब्रेरी और दृष्टिकोणों की समीक्षा करेंगे।
सर्वर पर PDF क्यों जनरेट करें?
सर्वर-साइड PDF जनरेशन आपको अनुमति देता है:
- डेटाबेस से डेटा के आधार पर गतिशील रूप से दस्तावेज़ बनाना
- फ़ॉर्मेटिंग की स्थिरता सुनिश्चित करना
- क्लाइंट को लोड किए बिना बड़ी मात्रा में डेटा के साथ काम करना
- मौजूदा रिपोर्टिंग सिस्टम के साथ एकीकृत करना
Node.js में PDF जनरेशन के लिए मुख्य लाइब्रेरी
1. pdfkit — क्लासिक समाधान
pdfkit स्क्रैच से PDF बनाने के लिए सबसे लोकप्रिय लाइब्रेरी में से एक है। यह दस्तावेज़ सामग्री पर पूर्ण नियंत्रण प्रदान करता है: टेक्स्ट, इमेज, टेबल, वेक्टर ग्राफिक्स।
const PDFDocument = require('pdfkit');const fs = require('fs');
const doc = new PDFDocument();doc.pipe(fs.createWriteStream('output.pdf'));
// टेक्स्ट जोड़ेंdoc.fontSize(25).text('नमस्ते, दुनिया!', 100, 100);
// एक रेखा खींचेंdoc.moveTo(100, 150).lineTo(400, 150).stroke();
// एक इमेज डालेंdoc.image('logo.png', 100, 200, { width: 100 });
doc.end();लाभ: हल्का, तेज़, Unicode और सिरिलिक का समर्थन करता है, कई फ़ॉन्ट।
नुकसान: मैन्युअल लेआउट सेटअप की आवश्यकता है, HTML के लिए कोई अंतर्निहित समर्थन नहीं।
2. Puppeteer — HTML से जनरेशन
Puppeteer हेडलेस Chrome ब्राउज़र को नियंत्रित करने के लिए एक लाइब्रेरी है। यह सभी स्टाइल और स्क्रिप्ट को संरक्षित करते हुए HTML पेजों को PDF में बदलने की अनुमति देता है।
const puppeteer = require('puppeteer');
async function generatePDF() { const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.setContent('<h1 style="color: red;">PDF शीर्षक</h1><p>दस्तावेज़ का टेक्स्ट</p>'); await page.pdf({ path: 'output.pdf', format: 'A4', margin: { top: '20px', bottom: '20px' } }); await browser.close();}
generatePDF();लाभ: जटिल HTML लेआउट के लिए आदर्श, CSS, JavaScript, फ़ॉन्ट का समर्थन करता है।
नुकसान: भारी (Chromium की आवश्यकता है), अन्य लाइब्रेरी की तुलना में धीमा।
3. pdf-lib — मौजूदा PDF का संशोधन
pdf-lib मौजूदा PDF दस्तावेज़ों को संपादित करने में माहिर है। यह टेक्स्ट, इमेज जोड़ने और फ़ॉर्म भरने की अनुमति देता है।
const { PDFDocument } = require('pdf-lib');const fs = require('fs');
async function editPDF() { const existingPdfBytes = fs.readFileSync('template.pdf'); const pdfDoc = await PDFDocument.load(existingPdfBytes); const pages = pdfDoc.getPages(); const firstPage = pages[0]; firstPage.drawText('नया टेक्स्ट', { x: 50, y: 50, size: 20, color: rgb(0, 0, 0) }); const pdfBytes = await pdfDoc.save(); fs.writeFileSync('modified.pdf', pdfBytes);}
editPDF();लाभ: हल्का, बाहरी निर्भरता की आवश्यकता नहीं है, फ़ॉर्म के साथ बढ़िया काम करता है।
नुकसान: स्क्रैच से जटिल लेआउट बनाने के लिए सीमित क्षमताएं।
4. jsPDF — क्लाइंट-सर्वर समाधान
jsPDF मूल रूप से ब्राउज़र के लिए बनाया गया था, लेकिन Node.js में भी काम करता है। सरल दस्तावेज़ों के लिए उपयुक्त।
const { jsPDF } = require("jspdf");
const doc = new jsPDF();doc.text("Hello world!", 10, 10);doc.save("output.pdf");लाभ: सरल API, क्लाइंट और सर्वर पर काम करता है।
नुकसान:
पुस्तकालय में भी
C# (.NET) में HTML पार्सिंग: HtmlAgilityPack और AngleSharp लाइब्रेरीज़
C++ के लिए HTTP-क्लाइंट: नेटवर्क कार्य के लिए शीर्ष लाइब्रेरीज़
PHP के लिए ORM: Doctrine, Eloquent और Cycle की तुलना — कोड उदाहरण
MongoDB.Driver C# (.NET) पूर्ण गाइड: उदाहरण और उपयोग
C# (.NET) के लिए ORM: तुलना और उपयोग के उदाहरण
अनुशंसाएँ