C# (.NET) में PDF रिपोर्ट जनरेशन: लाइब्रेरीज़ का अवलोकन और उदाहरण
.NET प्लेटफॉर्म पर आधुनिक डेवलपमेंट में, PDF दस्तावेज़ बनाना एक सामान्य कार्य है। चाहे वह इनवॉइस, रिपोर्ट, चालान या एनालिटिकल डैशबोर्ड बनाना हो, C# PDF के साथ काम करने के लिए शक्तिशाली टूल प्रदान करता है। इस लेख में, हम तीन लोकप्रिय लाइब्रेरीज़ पर चर्चा करेंगे: iTextSharp, QuestPDF और PdfSharp। आप जानेंगे कि किसी विशिष्ट कार्य के लिए किसे चुनना है, और काम करने वाले कोड उदाहरण देखेंगे।
1. iTextSharp (.NET के लिए iText 7)
iTextSharp .NET के लिए लोकप्रिय Java लाइब्रेरी iText का पोर्ट है। यह सबसे परिपक्व और सुविधा संपन्न समाधान है, जो जटिल लेआउट, टेबल, इमेज, एनोटेशन और डिजिटल हस्ताक्षर को सपोर्ट करता है। हालांकि, व्यावसायिक उपयोग के लिए लाइसेंस खरीदना आवश्यक है (ओपन-सोर्स के लिए AGPL)।
स्थापना
dotnet add package itext7उदाहरण: टेबल के साथ सरल रिपोर्ट
using iText.Kernel.Pdf;using iText.Layout;using iText.Layout.Element;
public void CreatePdfReport(){ string filePath = "report.pdf"; using (PdfWriter writer = new PdfWriter(filePath)) using (PdfDocument pdf = new PdfDocument(writer)) using (Document document = new Document(pdf)) { document.Add(new Paragraph("मार्च के लिए बिक्री रिपोर्ट") .SetBold().SetFontSize(18));
Table table = new Table(3); table.AddCell("उत्पाद"); table.AddCell("मात्रा"); table.AddCell("मूल्य"); table.AddCell("लैपटॉप"); table.AddCell("12"); table.AddCell("75,000 रुपये"); table.AddCell("मॉनिटर"); table.AddCell("5"); table.AddCell("32,000 रुपये");
document.Add(table); }}लाभ: अधिकतम लचीलापन, जटिल संरचनाओं का समर्थन, डिजिटल हस्ताक्षर।
नुकसान: शुरुआती लोगों के लिए जटिल API, व्यावसायिक उपयोग के लिए लाइसेंसिंग।
2. QuestPDF
QuestPDF एक आधुनिक लाइब्रेरी है जिसमें फ्लुएंट इंटरफ़ेस और अंतर्निहित रेंडरिंग इंजन है। यह HTML/CSS जैसी घोषणात्मक शैली में दस्तावेज़ का वर्णन करने की अनुमति देता है। दोहराए जाने वाले तत्वों वाली मानक रिपोर्ट जनरेट करने के लिए आदर्श है।
स्थापना
dotnet add package QuestPDFउदाहरण: शीर्षक और टेबल के साथ इनवॉइस
using QuestPDF.Fluent;using QuestPDF.Helpers;using QuestPDF.Infrastructure;
public byte[] GenerateInvoice(){ return Document.Create(container => { container.Page(page => { page.Size(PageSizes.A4); page.Margin(20); page.Header().Text("चालान संख्या 12345") .SemiBold().FontSize(20).FontColor(Colors.Blue.Darken2);
page.Content().Table(table => { table.ColumnsDefinition(columns => { columns.RelativeColumn(); columns.RelativeColumn(); columns.RelativeColumn(); });
table.Header(header => { header.Cell().Background(Colors.Grey.Lighten3).Text("सेवा"); header.Cell().Background(Colors.Grey.Lighten3).Text("लागत"); header.Cell().Background(Colors.Grey.Lighten3).Text("मात्रा"); });
table.Cell().Text("परामर्श"); table.Cell().Text("5,000 रुपये"); table.Cell().Text("2");
table.Cell().Text("विकास"); table.Cell().Text("15,000 रुपये"); table.Cell().Text("1"); });
page.Footer().AlignCenter().Text("सहयोग के लिए धन्यवाद!"); }); }).GeneratePdf();}लाभ: सरल और पढ़ने योग्य कोड, उत्कृष्ट प्रदर्शन, व्यावसायिक उपयोग के लिए मुफ्त