TypeScript में PDF जनरेशन: टूल्स का अवलोकन
PDF दस्तावेज़ जनरेशन वेब डेवलपमेंट में सामान्य कार्यों में से एक है। TypeScript और शक्तिशाली लाइब्रेरी की बदौलत, आप ब्राउज़र या सर्वर (Node.js) पर सीधे जटिल रिपोर्ट, चालान, प्रमाणपत्र और अन्य दस्तावेज़ बना सकते हैं। इस लेख में हम TypeScript में PDF के साथ काम करने के लिए मुख्य लाइब्रेरी, उनकी विशेषताओं और उपयोग के उदाहरणों पर विचार करेंगे।
1. jsPDF — हल्की और लोकप्रिय लाइब्रेरी
jsPDF क्लाइंट साइड पर PDF बनाने के लिए सबसे आम लाइब्रेरी में से एक है। यह केवल JavaScript/TypeScript का उपयोग करके सीधे ब्राउज़र में दस्तावेज़ जनरेट करने की अनुमति देती है। लाइब्रेरी टेक्स्ट, इमेज, टेबल और बुनियादी फ़ॉर्मेटिंग का समर्थन करती है।
स्थापना
npm install jspdf @types/jspdfउदाहरण: सरल PDF बनाना
import { jsPDF } from 'jspdf';
const doc = new jsPDF();doc.text('नमस्ते, दुनिया!', 10, 10);doc.save('document.pdf');लाभ और हानियाँ
- ✅ उपयोग में आसानी
- ✅ ब्राउज़र और Node.js में काम करता है (अतिरिक्त मॉड्यूल के साथ)
- ❌ जटिल लेआउट के लिए सीमित समर्थन
- ❌ टेबल के साथ काम करना कठिन (मैन्युअल सेटअप आवश्यक)
2. PDFKit — सर्वर-साइड जनरेशन के लिए शक्तिशाली उपकरण
PDFKit Node.js के लिए एक लाइब्रेरी है जो PDF निर्माण पर पूर्ण नियंत्रण प्रदान करती है। यह जटिल दस्तावेज़ों: रिपोर्ट, चालान, ब्रोशर के सर्वर-साइड जनरेशन के लिए आदर्श है। यह फ़ॉन्ट, ग्रेडिएंट, वेक्टर ग्राफ़िक्स और बहु-पृष्ठ दस्तावेज़ों का समर्थन करती है।
स्थापना
npm install pdfkit @types/pdfkitउदाहरण: टेक्स्ट और इमेज के साथ PDF बनाना
import PDFDocument from 'pdfkit';import fs from 'fs';
const doc = new PDFDocument();doc.pipe(fs.createWriteStream('output.pdf'));
doc.fontSize(25).text('शीर्षक', 100, 100);doc.image('path/to/image.png', 100, 150, { width: 200 });doc.end();लाभ और हानियाँ
- ✅ लचीलापन और पूर्ण नियंत्रण
- ✅ जटिल ग्राफ़िक्स का समर्थन
- ❌ ब्राउज़र में काम नहीं करता (केवल Node.js)
- ❌ jsPDF की तुलना में अधिक जटिल API
3. Puppeteer — HTML से PDF जनरेशन
Puppeteer Chrome headless ब्राउज़र को नियंत्रित करने के लिए एक लाइब्रेरी है। यह HTML पृष्ठों को PDF में बदलने की अनुमति देती है, जो तब सुविधाजनक होता है जब आपके पास पहले से दस्तावेज़ का लेआउट हो (जैसे चालान या रिपोर्ट)। यह क्लाइंट और सर्वर दोनों साइड जनरेशन के लिए उपयुक्त है।
स्थापना
npm install puppeteerउदाहरण: HTML से PDF जनरेशन
import puppeteer from 'puppeteer';
async function generatePDF() { const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.setContent('<h1>नमस्ते, PDF!</h1><p>यह एक रिपोर्ट है।</p>'); await page.pdf({ path: 'report.pdf', format: 'A4' }); await browser.close();}
generatePDF();लाभ और हानियाँ
- ✅ CSS और HTML का पूर्ण उपयोग
- ✅ जटिल लेआउट और शैलियों का समर्थन
- ❌ Chrome स्थापना की आवश्यकता (बड़ा आकार)
- ❌ विशेष लाइब्रेरी की तुलना में धीमा
4. pdfmake — JSON संरचना पर आधारित जनरेशन
pdfmake एक लाइब्रेरी है जो घोषणात्मक दृष्टिकोण का उपयोग करती है: आप JSON में दस्तावेज़ की संरचना का वर्णन करते हैं, और लाइब्रेरी स्वयं PDF बनाती है। यह टेबल, सूचियाँ और रिपोर्ट बनाने के लिए उपयुक्त है।
स्थापना
npm install pdfmake @types/pdfmakeउदाहरण: टेबल के साथ PDF बनाना
import pdfMake from 'pdfmake/build/pdfmake';import pdfFonts from 'pdfmake/build/vfs_fonts';
pdfMake.vfs = pdfFonts.pdfMake.vfs;
const docDefinition = { content: [ { text: 'रिपोर्ट'