TypeScript में PDF जनरेशन: डेवलपर्स के लिए संपूर्ण गाइड
PDF दस्तावेज़ बनाना आधुनिक वेब डेवलपमेंट में एक महत्वपूर्ण कार्य है। TypeScript भाषा में कई शक्तिशाली लाइब्रेरीज़ मौजूद हैं जो क्लाइंट साइड और सर्वर (Node.js) दोनों पर PDF जनरेट करने की अनुमति देती हैं। इस लेख में हम तीन मुख्य टूल्स पर विचार करेंगे: PDFKit, jsPDF और pdf-lib, साथ ही उनके उपयोग के व्यावहारिक उदाहरण भी दिखाएंगे।
TypeScript में PDF क्यों जनरेट करें?
TypeScript स्थैतिक टाइपिंग जोड़ता है, जो जटिल संरचना वाले दस्तावेज़ों के साथ काम करते समय विशेष रूप से महत्वपूर्ण है। PDF जनरेशन के लिए TypeScript का उपयोग करने से निम्नलिखित लाभ मिलते हैं:
- तालिकाओं और शैलियों को बनाते समय टाइप त्रुटियों से बचाव
- बड़े प्रोजेक्ट्स के रीफैक्टरिंग को सरल बनाना
- PDF जनरेशन को मौजूदा TypeScript प्रोजेक्ट्स (React, Angular, Node.js) के साथ एकीकृत करना
PDF जनरेशन के लिए लाइब्रेरीज़ का अवलोकन
1. PDFKit (Node.js)
PDFKit सर्वर पर PDF बनाने के लिए सबसे लोकप्रिय लाइब्रेरी है। यह PDF ऑब्जेक्ट्स तक निम्न-स्तरीय पहुंच प्रदान करती है, फ़ॉन्ट्स, इमेज, वेक्टर ग्राफिक्स एम्बेड करने और सिरिलिक (उपयुक्त फ़ॉन्ट्स कनेक्ट करने पर) का समर्थन करती है।
import PDFDocument from 'pdfkit';import fs from 'fs';
const doc = new PDFDocument();doc.pipe(fs.createWriteStream('output.pdf'));
doc.fontSize(24).text('Привет, мир!', 100, 100);doc.fontSize(12).text('Это PDF, созданный с помощью PDFKit и TypeScript', 100, 150);doc.end();विशेषताएं:
- केवल Node.js में काम करता है (ब्राउज़र के लिए उपयुक्त नहीं)
- सिरिलिक के लिए मैन्युअल फ़ॉन्ट सेटअप की आवश्यकता होती है
- जटिल लेआउट, तालिकाओं और ग्राफिक्स का समर्थन करता है
2. jsPDF (ब्राउज़र और Node.js)
jsPDF एक बहुमुखी लाइब्रेरी है जो ब्राउज़र और सर्वर दोनों पर काम करती है। यह सीखने में आसान है, लेकिन लेआउट जटिलता में सीमाएँ हैं।
import { jsPDF } from 'jspdf';
const doc = new jsPDF();doc.text('Генерация PDF на TypeScript', 10, 10);doc.save('document.pdf');विशेषताएं:
- बुनियादी दस्तावेज़ों के लिए सरल API
- सिरिलिक समर्थन (addFont के माध्यम से फ़ॉन्ट्स कनेक्ट करने की आवश्यकता)
- canvas और HTML तत्वों के साथ काम कर सकता है
3. pdf-lib (आधुनिक और लचीला)
pdf-lib एक हल्की लाइब्रेरी है जिसमें TypeScript का उत्कृष्ट समर्थन है। यह शुरू से PDF बनाने या मौजूदा दस्तावेज़ों को संपादित करने की अनुमति देती है।
import { PDFDocument, StandardFonts, rgb } from 'pdf-lib';
async function createPDF() { const doc = await PDFDocument.create(); const page = doc.addPage(); const font = await doc.embedFont(StandardFonts.Helvetica);
page.drawText('PDF с pdf-lib', { x: 50, y: 700, size: 24, font, color: rgb(0, 0, 0), });
const pdfBytes = await doc.save(); // सहेजना या भेजना}विशेषताएं:
- TypeScript का पूर्ण समर्थन (टाइप्स शामिल हैं)
- ब्राउज़र और Node.js में काम कर सकता है
- मौजूदा PDF को संशोधित करने की अनुमति देता है
- सिरिलिक के लिए फ़ॉन्ट्स के साथ मैन्युअल काम की आवश्यकता होती है
लाइब्रेरीज़ की तुलना
| विशेषता | PDFKit | jsPDF | pdf-lib |
|---|---|---|---|
| निष्पादन वातावरण | Node.js | ब्राउज़र + Node.js | ब्राउज़र + Node.js |
| TypeScript समर्थन | आंशिक (@types के माध्यम से) | आंशिक | पूर्ण |
| सिरिलिक | फ़ॉन्ट्स की आवश्यकता | फ़ॉन्ट्स की आवश्यकता | फ़ॉन्ट्स की आवश्यकता |
| जटिल लेआउट | उत्कृष्ट |