TypeScript पर PDF रिपोर्ट जनरेशन: लाइब्रेरी का अवलोकन और व्यावहारिक उदाहरण
PDF दस्तावेज़ जनरेट करना आधुनिक वेब एप्लिकेशन और कॉर्पोरेट सिस्टम विकसित करने के प्रमुख कार्यों में से एक है। रिपोर्ट, चालान, प्रमाणपत्र, विश्लेषणात्मक डैशबोर्ड - इन सबके लिए सर्वर या क्लाइंट साइड पर PDF बनाने के लिए एक सुविधाजनक और लचीले टूल की आवश्यकता होती है। TypeScript, JavaScript पर एक सख्ती से टाइप की गई परत के रूप में, ऐसी कार्यक्षमता को लागू करने के लिए उत्कृष्ट अवसर प्रदान करता है। इस लेख में, हम TypeScript पर PDF जनरेशन के लिए मुख्य लाइब्रेरी, उनकी विशेषताओं, लाभों और उपयोग के उदाहरणों पर चर्चा करेंगे।
PDF जनरेशन के लिए TypeScript का उपयोग क्यों करें?
TypeScript स्थैतिक टाइपिंग जोड़ता है, जो जटिल रिपोर्ट जनरेशन सिस्टम के विकास को काफी सरल बनाता है। IDE ऑटो-कम्प्लीशन, टाइप चेकिंग और रीफैक्टरिंग प्रदान करता है, जिससे त्रुटियों की संख्या कम होती है। इसके अलावा, TypeScript कोड को बनाए रखना और स्केल करना आसान है, खासकर बड़े प्रोजेक्ट्स में।
TypeScript पर PDF जनरेशन के लिए मुख्य लाइब्रेरी
आइए तीन सबसे लोकप्रिय टूल्स पर नज़र डालें: PDFKit, jsPDF और Puppeteer। इनमें से प्रत्येक की अपनी विशिष्टता और विशेषताएं हैं।
1. PDFKit
PDFKit Node.js पर PDF दस्तावेज़ बनाने के लिए एक शक्तिशाली लाइब्रेरी है। यह पूरी तरह से JavaScript में लिखी गई है और टाइप डेफिनिशन (@types/pdfkit) के माध्यम से TypeScript को सपोर्ट करती है। PDFKit आपको स्क्रैच से दस्तावेज़ बनाने, टेक्स्ट, इमेज, वेक्टर ग्राफिक्स, टेबल और बहुत कुछ जोड़ने की अनुमति देता है।
लाभ:
- PDF की सामग्री और संरचना पर पूर्ण नियंत्रण।
- फ़ॉन्ट, रंग, पारदर्शिता के लिए समर्थन।
- सिरिलिक वर्णमाला के लिए अंतर्निहित समर्थन (फ़ॉन्ट कनेक्ट करने पर)।
- उच्च प्रदर्शन।
TypeScript के साथ PDFKit का उपयोग करने का उदाहरण:
import PDFDocument from 'pdfkit';import * as fs from 'fs';
const doc = new PDFDocument();doc.pipe(fs.createWriteStream('report.pdf'));
doc.fontSize(25).text('बिक्री रिपोर्ट', 100, 100);doc.fontSize(12).text('दिनांक: 2025-03-15', 100, 150);doc.moveDown();
doc.text('नाम: लैपटॉप');doc.text('मात्रा: 10');doc.text('राशि: 1,200,000 रूबल');
doc.end();सिरिलिक वर्णमाला के साथ सही ढंग से काम करने के लिए, एक फ़ॉन्ट कनेक्ट करना आवश्यक है, उदाहरण के लिए:
doc.registerFont('Roboto', 'fonts/Roboto-Regular.ttf');doc.font('Roboto').text('नमस्ते, दुनिया!');2. jsPDF
jsPDF सीधे ब्राउज़र में PDF जनरेट करने के लिए एक क्लाइंट-साइड लाइब्रेरी है। इसमें TypeScript के लिए टाइप भी हैं। jsPDF सर्वर प्रोसेसिंग के बिना सरल रिपोर्ट, चालान और इनवॉइस बनाने के लिए उपयुक्त है।
लाभ:
- क्लाइंट साइड पर काम करता है (सर्वर की आवश्यकता नहीं)।
- सेटअप और उपयोग में आसान।
html2canvasप्लगइन के माध्यम से HTML लेआउट के लिए समर्थन।
TypeScript के साथ jsPDF का उपयोग करने का उदाहरण:
import { jsPDF } from 'jspdf';
const doc = new jsPDF();doc.setFontSize(18);doc.text('प्रोजेक्ट रिपोर्ट', 10, 20);doc.setFontSize(12);doc.text('पूर्ण: 75%', 10, 40);doc.text('बजट: 2,500,000 रूबल', 10, 50);
doc.save('project-report.pdf');महत्वपूर्ण: jsPDF "आउट-ऑफ-द-बॉक्स" सिरिलिक वर्णमाला का समर्थन नहीं करता है। रूसी टेक्स्ट के साथ काम करने के लिए, आपको addFileToVFS और addFont के माध्यम से फ़ॉन्ट लोड करने होंगे।
3. Puppeteer
Puppeteer DevTools प्रोटोकॉल के माध्यम से Chrome/Chromium ब्राउज़र को नियंत्रित करने के लिए एक लाइब्रेरी है। यह अधिकतम सटीकता के साथ HTML/CSS से PDF जनरेट करने की अनुमति देता है, क्योंकि यह ब्राउज़र के वास्तविक रेंडरिंग का उपयोग करता है। Puppeteer के आधिकारिक TypeScript टाइप हैं।
लाभ:
- CSS, Flexbox, Grid, सिरिलिक वर्णमाला के लिए पूर्ण समर्थन।