Node.js में PDF जनरेशन: लाइब्रेरीज़ और टूल्स

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

JavaScript (Node.js) में PDF जनरेशन: लाइब्रेरीज़ और टूल्स का अवलोकन

\n\n

PDF दस्तावेज़ बनाना वेब डेवलपमेंट में एक सामान्य कार्य है। चाहे वह इनवॉइस, रिपोर्ट, प्रमाणपत्र जनरेट करना हो या केवल डेटा निर्यात करना, Node.js कई शक्तिशाली समाधान प्रदान करता है। इस लेख में, हम सर्वर-साइड JavaScript पर PDF के साथ काम करने के लिए मुख्य लाइब्रेरीज़, उनकी क्षमताओं और उपयोग के उदाहरणों पर चर्चा करेंगे।

\n\n

सर्वर पर PDF क्यों जनरेट करें?

\n

सर्वर (Node.js) पर PDF जनरेशन कई लाभ प्रदान करता है:

\n
    \n
  • एकरूपता — दस्तावेज़ सभी उपकरणों पर समान दिखता है
  • \n
  • सुरक्षा — डेटा सर्वर से बाहर नहीं जाता
  • \n
  • स्वचालन — शेड्यूल या विशिष्ट घटनाओं पर PDF बनाई जा सकती है
  • \n
  • जटिल लॉजिक का समर्थन — डेटाबेस, फ़ाइल सिस्टम और अन्य संसाधनों तक पहुंच
  • \n
\n\n

Node.js में PDF जनरेशन के लिए मुख्य लाइब्रेरीज़

\n\n

1. PDFKit

\n

PDFKit स्क्रैच से PDF बनाने के लिए सबसे लोकप्रिय लाइब्रेरी है। इसे बाहरी निर्भरता की आवश्यकता नहीं है और यह दस्तावेज़ की सामग्री पर पूर्ण नियंत्रण प्रदान करता है।

\n

उपयोग उदाहरण:

\n
const 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
\n\n

2. Puppeteer

\n

Puppeteer Chrome/Chromium ब्राउज़र को नियंत्रित करने का एक उपकरण है। यह HTML पृष्ठों से PDF जनरेट करने की अनुमति देता है, जो जटिल लेआउट के लिए उपयोगी है।

\n

उपयोग उदाहरण:

\n
const 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
\n\n

3. jsPDF (Node.js के लिए अनुकूलन के साथ)

\n

jsPDF एक क्लाइंट-साइड लाइब्रेरी है, लेकिन Node.js में उपयोग के लिए रैपर मौजूद हैं (जैसे, jspdf-autotable)।

\n

उदाहरण (jspdf और html2canvas के साथ):

\n
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\n

4. pdfmake

\n

pdfmake एक लाइब्रेरी है जो JSON प्रारूप में दस्तावेज़ के घोषणात्मक विवरण पर आधारित है।

\n

उदाहरण:

\n
const 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:                    

अनुशंसाएँ