TypeScript में PDF जनरेशन: लाइब्रेरीज़ और टूल्स का अवलोकन
\n\nPDF दस्तावेज़ बनाना वेब डेवलपमेंट में सामान्य कार्यों में से एक है। TypeScript, सख्त टाइपिंग और आधुनिक क्षमताओं के कारण, क्लाइंट और सर्वर दोनों पर PDF जनरेशन के लिए विश्वसनीय कोड लिखने की अनुमति देता है। इस लेख में, हम TypeScript पर PDF जनरेशन के लिए लोकप्रिय लाइब्रेरीज़ और टूल्स, उनकी विशेषताओं और उपयोग के उदाहरणों पर चर्चा करेंगे।
\n\n1. PDFKit — शक्तिशाली सर्वर-साइड लाइब्रेरी
\n\nPDFKit Node.js पर PDF बनाने के लिए सबसे लोकप्रिय लाइब्रेरीज़ में से एक है। यह दस्तावेज़ संरचना पर पूर्ण नियंत्रण प्रदान करता है, फ़ॉन्ट, इमेज, एनोटेशन और वेक्टर ग्राफ़िक्स को सपोर्ट करता है। PDFKit सर्वर पर काम करता है और जटिल रिपोर्ट, इनवॉइस या प्रमाणपत्र जनरेट करने के लिए आदर्श है।
\n\nस्थापना और उदाहरण:
\n\nnpm install pdfkit @types/pdfkit\n\n\nimport PDFDocument from 'pdfkit';\nimport * as fs from 'fs';\n\nconst doc = new PDFDocument();\n\ndoc.pipe(fs.createWriteStream('output.pdf'));\n\ndoc.fontSize(25).text('नमस्ते, दुनिया!', 100, 100);\ndoc.fontSize(12).text('यह PDF, PDFKit और TypeScript के साथ जनरेट किया गया है।', 100, 150);\n\ndoc.end();\n\n\nPDFKit इसके लिए उपयुक्त है:
\n\n- \n
- सर्वर पर PDF बनाना (Express, NestJS) \n
- कस्टम फ़ॉन्ट और एन्कोडिंग (सिरिलिक सहित) के साथ काम करना \n
- इमेज, टेबल और ग्राफ़िकल प्रिमिटिव जोड़ना \n
2. jsPDF — क्लाइंट पर PDF जनरेशन
\n\njsPDF सीधे ब्राउज़र में PDF बनाने के लिए एक क्लाइंट-साइड लाइब्रेरी है। इसका उपयोग करना आसान है, यह टेक्स्ट, इमेज, एनोटेशन और बुनियादी आकृतियों को सपोर्ट करता है। TypeScript के लिए, DefinitelyTyped के माध्यम से टाइप्स उपलब्ध हैं।
\n\nस्थापना:
\n\nnpm install jspdf @types/jspdf\n\n\nब्राउज़र में PDF जनरेशन का उदाहरण:
\n\nimport { jsPDF } from 'jspdf';\n\nconst doc = new jsPDF();\n\ndoc.text('नमस्ते, TypeScript!', 10, 10);\ndoc.text('यह PDF ब्राउज़र में बनाया गया है।', 10, 20);\n\ndoc.save('document.pdf');\n\n\njsPDF इसके लिए उपयुक्त है:
\n\n- \n
- क्लाइंट साइड पर PDF डाउनलोड करना (रिपोर्ट, रसीदें) \n
- जटिल लेआउट के बिना सरल दस्तावेज़ \n
- त्वरित प्रोटोटाइपिंग \n
3. Puppeteer — HTML से जनरेशन
\n\nPuppeteer Chrome/Chromium ब्राउज़र को नियंत्रित करने के लिए एक लाइब्रेरी है। यह HTML पेजों को PDF में बदलने की अनुमति देता है, जिसमें स्टाइल, फ़ॉन्ट और लेआउट पूरी तरह से संरक्षित रहते हैं। यह जटिल दस्तावेज़, रिपोर्ट और विज़िटिंग कार्ड बनाने के लिए उपयुक्त है।
\n\nस्थापना:
\n\nnpm install puppeteer\n\n\nHTML को PDF में बदलने का उदाहरण:
\n\nimport puppeteer from 'puppeteer';\n\nasync function generatePDF(html: string, outputPath: string): Promise<void> {\n const browser = await puppeteer.launch();\n const page = await browser.newPage();\n\n await page.setContent(html, { waitUntil: 'networkidle0' });\n await page.pdf({ path: outputPath, format: 'A4' });\n\n await browser.close();\n}\n\n// उपयोग\nconst htmlContent = `<h1 style="color: blue;">शीर्षक</h1><p>HTML स्टाइल के साथ टेक्स्ट</p>`;\ngeneratePDF(htmlContent, 'output.pdf');\n\n\nPuppeteer इसके लिए आदर्श है:
\n\n- \n
- जटिल HTML टेम्पलेट्स को PDF में बदलना \n
- CSS स्टाइल, Flexbox, Grid के साथ PDF बनाना \n
- पूर्ण दृश्य नियंत्रण के साथ सर्वर पर PDF जनरेशन \n
4. pdf-lib — हल्की और तेज़ लाइब्रेरी
\n\npdf-lib बिना बाहरी निर्भरता के PDF दस्तावेज़ बनाने और संशोधित करने के लिए एक आधुनिक लाइब्रेरी है। यह Node.js और ब्राउज़र दोनों में काम करता है। यह फ़ॉन्ट, इमेज, फॉर्म और एनोटेशन को सपोर्ट करता है।
\n\nस्थापना:
\n\nnpm install pdf-lib\n\n\