TypeScript पर PDF रिपोर्ट जनरेशन: pdf-lib लाइब्रेरी

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

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

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

pdf-lib लाइब्रेरी के साथ TypeScript पर PDF रिपोर्ट जनरेशन



आधुनिक वेब डेवलपमेंट में, अक्सर PDF फॉर्मेट में दस्तावेज़ बनाने की आवश्यकता होती है - साधारण रसीदों और पावतियों से लेकर ग्राफ़ वाली जटिल विश्लेषणात्मक रिपोर्ट तक। TypeScript, JavaScript का एक सख्ती से टाइप किया गया विस्तार होने के नाते, PDF के साथ काम करने के लिए उत्कृष्ट अवसर प्रदान करता है। कई लाइब्रेरियों में से pdf-lib विशेष रूप से उभर कर आता है - एक शक्तिशाली, पूरी तरह से क्लाइंट-साइड टूल जिसे सर्वर निर्भरताओं की आवश्यकता नहीं होती।



इस लेख में, हम विस्तार से देखेंगे कि TypeScript पर PDF रिपोर्ट जनरेट करने के लिए pdf-lib का उपयोग कैसे करें, जिसमें इंस्टॉलेशन, बुनियादी संचालन और उन्नत तकनीकें शामिल हैं।



pdf-lib क्या है?



pdf-lib एक ओपन-सोर्स लाइब्रेरी है जो TypeScript में लिखी गई है, जो आपको ब्राउज़र या Node.js वातावरण में सीधे PDF दस्तावेज़ बनाने और संपादित करने की अनुमति देती है। इसके मुख्य लाभ हैं:



  • TypeScript के लिए पूर्ण समर्थन (सभी प्रकार शामिल हैं)
  • बाहरी निर्भरताओं के बिना काम करना (Puppeteer या wkhtmltopdf की आवश्यकता नहीं)
  • मौजूदा PDF के साथ काम करने की क्षमता (मर्ज करना, पेज डालना)
  • सिरिलिक और किसी भी फ़ॉन्ट के लिए समर्थन
  • इमेज एम्बेड करना (PNG, JPG, SVG)
  • फॉर्म और एनोटेशन बनाना


इंस्टॉलेशन और सेटअप



इंस्टॉलेशन मानक पैकेज मैनेजर के माध्यम से किया जाता है:



npm install pdf-lib# याyarn add pdf-lib


TypeScript के साथ काम करने के लिए किसी अतिरिक्त कार्रवाई की आवश्यकता नहीं है - सभी प्रकार पहले से ही पैकेज में शामिल हैं।



बुनियादी उदाहरण: एक सरल रिपोर्ट बनाना



आइए एक शीर्षक और टेक्स्ट के साथ न्यूनतम PDF दस्तावेज़ बनाने पर विचार करें:



import { PDFDocument, StandardFonts, rgb } from 'pdf-lib';

async function createSimpleReport() { // 1. एक नया PDF दस्तावेज़ बनाएँ const pdfDoc = await PDFDocument.create(); // 2. एक पेज जोड़ें (A4 फॉर्मेट: 595.28 x 841.89 पॉइंट) const page = pdfDoc.addPage([595.28, 841.89]); // 3. मानक फ़ॉन्ट एम्बेड करें const font = await pdfDoc.embedFont(StandardFonts.Helvetica); // 4. शीर्षक ड्रा करें page.drawText('Q1 2025 के लिए बिक्री रिपोर्ट', { x: 50, y: 800, size: 24, font: font, color: rgb(0, 0.2, 0.6), }); // 5. मुख्य टेक्स्ट ड्रा करें page.drawText('कुल राजस्व: 1,234,567 रुपये', { x: 50, y: 760, size: 14, font: font, color: rgb(0, 0, 0), }); // 6. दस्तावेज़ को Uint8Array में सेव करें const pdfBytes = await pdfDoc.save(); return pdfBytes;}


टेबल और डेटा के साथ काम करना



टेबल रिपोर्ट बनाने के लिए थोड़ी अधिक लॉजिक की आवश्यकता होती है। यहाँ डेटा के साथ टेबल जनरेट करने का एक उदाहरण है:



import { PDFDocument, StandardFonts, rgb } from 'pdf-lib';

interface SaleRecord { product: string; quantity: number; price: number;}

async function createTableReport(data: SaleRecord[]) { const pdfDoc = await PDFDocument.create(); const page = pdfDoc.addPage([595.28, 841.89]); const font = await pdfDoc.embedFont(StandardFonts.Helvetica); const boldFont = await pdfDoc.embedFont(StandardFonts.HelveticaBold); const startX = 50; let startY = 800; const rowHeight = 25; const colWidths = [200, 100, 100, 100]; // नाम, मात्रा, मूल्य, कुल // टेबल का शीर्षक const headers = ['नाम', 'मात्रा', 'मूल्य', 'कुल']; page.drawText(headers[0], { x: startX, y: startY, size: 12, font: boldFont }); page.drawText(headers[1], { x: startX + colWidths[0], y: startY, size: 12, font: boldFont }); page.drawText(headers[2], { x: startX + colWidths[0] + colWidths[1], y: startY, size: 12, font: boldFont }); page.drawText(headers[3], { x: startX + colWidths[0] + colWidths[1] + colWidths[2], y: startY, size: 12, font: boldFont }); startY -= rowHeight; // डेटा पंक्तियाँ for (const record of data) { const total = reco

अनुशंसाएँ