C# (.NET) पर PDF रिपोर्ट जनरेशन: सर्वश्रेष्ठ लाइब्रेरीज़ का अवलोकन
PDF रिपोर्ट बनाना C# (.NET) पर कॉर्पोरेट एप्लिकेशन में सबसे आम कार्यों में से एक है। चाहे वह ग्राहक के लिए डेटा निर्यात करना हो, इनवॉइस बनाना हो, या जटिल विश्लेषणात्मक डैशबोर्ड बनाना हो - आपको एक विश्वसनीय टूल की आवश्यकता होगी। इस लेख में, हम तीन मुख्य लाइब्रेरीज़ पर चर्चा करेंगे: iTextSharp (और इसका उत्तराधिकारी iText 7), QuestPDF और PDFsharp। आप जानेंगे कि किसी विशिष्ट कार्य के लिए किसे चुनना है, और कार्यशील कोड उदाहरण देखेंगे।
1. iTextSharp / iText 7 — क्लासिक और शक्तिशाली
iTextSharp .NET के लिए लोकप्रिय Java लाइब्रेरी iText का पोर्ट है। iText 7 संस्करण (NuGet पैकेज itext7) पूरी तरह से फिर से लिखा गया है और आधुनिक API का समर्थन करता है। लाइब्रेरी आपको शुरू से PDF बनाने, मौजूदा PDF को संपादित करने, वॉटरमार्क, फॉर्म, बुकमार्क और मेटाडेटा जोड़ने की अनुमति देती है।
मुख्य विशेषताएँ:
- दस्तावेज़ संरचना पर पूर्ण नियंत्रण (पैराग्राफ, टेबल, इमेज, लिस्ट)।
- फ़ॉन्ट्स का समर्थन, जिसमें सिरिलिक (TrueType) शामिल हैं।
- फॉर्म (AcroForms) और डिजिटल हस्ताक्षरों के साथ कार्य।
- लाइसेंस: AGPL (व्यावसायिक उपयोग के लिए लाइसेंस खरीदना आवश्यक है)।
उदाहरण: टेबल के साथ सरल रिपोर्ट बनाना
using iText.Kernel.Pdf;using iText.Layout;using iText.Layout.Element;
public void CreateReport(string filePath){ using (var writer = new PdfWriter(filePath)) using (var pdf = new PdfDocument(writer)) using (var document = new Document(pdf)) { document.Add(new Paragraph("बिक्री रिपोर्ट") .SetFontSize(20).SetBold());
Table table = new Table(3); table.AddCell("उत्पाद"); table.AddCell("मात्रा"); table.AddCell("मूल्य");
table.AddCell("लैपटॉप"); table.AddCell("10"); table.AddCell("75000");
table.AddCell("माउस"); table.AddCell("50"); table.AddCell("1500");
document.Add(table); }}2. QuestPDF — आधुनिक और संक्षिप्त API
QuestPDF एक अपेक्षाकृत नई लाइब्रेरी है (2021 से), जो तेज़ी से लोकप्रियता प्राप्त कर रही है। इसकी मुख्य विशेषता Fluent API है, जो HTML/CSS के साथ काम करने की याद दिलाता है। कोड पढ़ने योग्य और संक्षिप्त होता है। QuestPDF व्यावसायिक उपयोग के लिए पूरी तरह से मुफ़्त है (MIT लाइसेंस)।
विशेषताएँ:
- लेआउट का घोषणात्मक विवरण: कंटेनर, कॉलम, पंक्तियाँ।
- शैलियों, रंगों, बॉर्डर और बैकग्राउंड के लिए अंतर्निहित समर्थन।
- टेक्स्ट का स्वचालित रैपिंग और टेबल का समायोजन।
- PDF और XPS में निर्यात।
उदाहरण: QuestPDF का उपयोग करके रिपोर्ट बनाना
using QuestPDF.Fluent;using QuestPDF.Helpers;using QuestPDF.Infrastructure;
public void CreateInvoice(string filePath){ Document.Create(container => { container.Page(page => { page.Size(PageSizes.A4); page.Margin(2, Unit.Centimetre); page.DefaultTextStyle(x => x.FontSize(12));
page.Header().Text("इनवॉइस नं. 123") .SemiBold().FontSize(24).FontColor(Colors.Blue.Darken2);
page.Content().Table(table => { table.ColumnsDefinition(columns => { columns.ConstantColumn(100); columns.RelativeColumn(); columns.ConstantColumn(80); });
table.Header(header => { header.Cell().Text("नाम"); header.Cell().Text("विवरण"); header.Cell().Text("राशि"); });
table.Cell().Text("परामर्श"); table.Cell().Text("आर्किटेक्चर विकास"); table.Cell().Text