JavaScript (Node.js) में PDF जनरेशन: लाइब्रेरीज़ और टूल्स का अवलोकन
\n\nPDF दस्तावेज़ बनाना वेब डेवलपमेंट में एक सामान्य कार्य है। चाहे वह इनवॉइस, रिपोर्ट, प्रमाणपत्र जनरेट करना हो या केवल डेटा निर्यात करना, Node.js कई शक्तिशाली समाधान प्रदान करता है। इस लेख में, हम सर्वर-साइड JavaScript पर PDF के साथ काम करने के लिए मुख्य लाइब्रेरीज़, उनकी क्षमताओं और उपयोग के उदाहरणों पर चर्चा करेंगे।
\n\nसर्वर पर PDF क्यों जनरेट करें?
\nसर्वर (Node.js) पर PDF जनरेशन कई लाभ प्रदान करता है:
\n- \n
- एकरूपता — दस्तावेज़ सभी उपकरणों पर समान दिखता है \n
- सुरक्षा — डेटा सर्वर से बाहर नहीं जाता \n
- स्वचालन — शेड्यूल या विशिष्ट घटनाओं पर PDF बनाई जा सकती है \n
- जटिल लॉजिक का समर्थन — डेटाबेस, फ़ाइल सिस्टम और अन्य संसाधनों तक पहुंच \n
Node.js में PDF जनरेशन के लिए मुख्य लाइब्रेरीज़
\n\n1. PDFKit
\nPDFKit स्क्रैच से PDF बनाने के लिए सबसे लोकप्रिय लाइब्रेरी है। इसे बाहरी निर्भरता की आवश्यकता नहीं है और यह दस्तावेज़ की सामग्री पर पूर्ण नियंत्रण प्रदान करता है।
उपयोग उदाहरण:
\nconst PDFDocument = require('pdfkit');\nconst fs = require('fs');\n\nconst doc = new PDFDocument();\ndoc.pipe(fs.createWriteStream('output.pdf'));\n\n// कंटेंट जोड़ें\ndoc.fontSize(25).text('नमस्ते, दुनिया!', 100, 100);\ndoc.fontSize(12).text('यह PDFKit के साथ बनाया गया PDF है।', 100, 150);\n\n// एक रेखा खींचें\ndoc.moveTo(100, 200).lineTo(500, 200).stroke();\n\n// दस्तावेज़ समाप्त करें\ndoc.end();\n\nक्षमताएं:
\n- \n
- विभिन्न फ़ॉन्ट और आकारों के साथ टेक्स्ट जोड़ना \n
- चित्र सम्मिलित करना (JPEG, PNG) \n
- रेखाएं, आयत और वृत्त बनाना \n
- लिंक और बुकमार्क का समर्थन \n
- बहु-पृष्ठ दस्तावेज़ बनाना \n
2. Puppeteer
\nPuppeteer Chrome/Chromium ब्राउज़र को नियंत्रित करने का एक उपकरण है। यह HTML पृष्ठों से PDF जनरेट करने की अनुमति देता है, जो जटिल लेआउट के लिए उपयोगी है।
उपयोग उदाहरण:
\nconst puppeteer = require('puppeteer');\n\nasync function generatePDF() {\n const browser = await puppeteer.launch();\n const page = await browser.newPage();\n\n await page.setContent('<h1>शीर्षक</h1><p>दस्तावेज़ का टेक्स्ट</p>');\n await page.pdf({ path: 'page.pdf', format: 'A4' });\n\n await browser.close();\n}\n\ngeneratePDF();\n\nविशेषताएं:
\n- \n
- CSS, JavaScript और सभी आधुनिक वेब तकनीकों का समर्थन \n
- HTML टेम्पलेट्स को PDF में बदलने के लिए आदर्श \n
- निर्दिष्ट पैरामीटर (प्रारूप, मार्जिन, स्केल) के साथ प्रिंट करने की क्षमता \n
- Chromium की स्थापना आवश्यक (~300 MB) \n
3. jsPDF (Node.js के लिए अनुकूलन के साथ)
\njsPDF एक क्लाइंट-साइड लाइब्रेरी है, लेकिन Node.js में उपयोग के लिए रैपर मौजूद हैं (जैसे, jspdf-autotable)।
उदाहरण (jspdf और html2canvas के साथ):
const { jsPDF } = require('jspdf');\nconst fs = require('fs');\n\nconst doc = new jsPDF();\ndoc.text('Node.js से नमस्ते!', 10, 10);\ndoc.save('output.pdf');\n\nसीमाएं: jsPDF जटिल लेआउट का समर्थन नहीं करता है और HTML के साथ काम करने के लिए अतिरिक्त लाइब्रेरीज़ की आवश्यकता होती है।
\n\n4. pdfmake
\npdfmake एक लाइब्रेरी है जो JSON प्रारूप में दस्तावेज़ के घोषणात्मक विवरण पर आधारित है।
उदाहरण:
\nconst pdfmake = require('pdfmake');\nconst fs = require('fs');\n\nconst fonts = {\n Roboto: {\n normal: 'fonts/Roboto-Regular.ttf',\n bold: 'fonts/Roboto-Medium.ttf'\n }\n};\n\nconst printer = new pdfmake(fonts);\n\nconst docDefinition = {\n content: [\n { text: