C# (.NET) में PDF निर्माण: पुस्तकालयों और उपकरणों का पूर्ण अवलोकन
PDF दस्तावेज़ बनाना कॉर्पोरेट विकास में सबसे सामान्य कार्यों में से एक है। रिपोर्ट, चालान, माल-वाहक पत्र, अनुबंध - इन सबके लिए निर्माण हेतु एक विश्वसनीय उपकरण की आवश्यकता होती है। C# (.NET) पारिस्थितिकी तंत्र में कई शक्तिशाली पुस्तकालय मौजूद हैं, प्रत्येक की अपनी विशेषताएँ हैं। इस लेख में, हम सबसे लोकप्रिय विकल्पों, उनके फायदे और नुकसान के साथ-साथ कोड उदाहरणों पर चर्चा करेंगे।
1. iTextSharp / .NET के लिए iText 7
iText PDF निर्माण की दुनिया में वास्तविक मानक है। यह पुस्तकालय 2000 से अस्तित्व में है और सक्रिय रूप से विकसित हो रहा है। .NET के लिए iText 7 संस्करण उपलब्ध है (NuGet पैकेज itext7)।
क्षमताएँ:
- सामग्री पर पूर्ण नियंत्रण: टेक्स्ट, तालिकाएँ, चित्र, एनोटेशन।
- फॉर्म (AcroForms), डिजिटल हस्ताक्षर, एन्क्रिप्शन के साथ कार्य।
- PDF/A (संग्रहीत भंडारण) के लिए समर्थन।
- उच्च प्रदर्शन।
नुकसान:
- जटिल API (निर्देशांक के साथ निम्न-स्तरीय कार्य)।
- व्यावसायिक उपयोग के लिए सशुल्क लाइसेंस की आवश्यकता है (ओपन-सोर्स के लिए AGPL)।
सरल PDF बनाने का उदाहरण:
using iText.Kernel.Pdf;using iText.Layout;using iText.Layout.Element;
public void CreatePdf(string filePath){ using (var writer = new PdfWriter(filePath)) using (var pdf = new PdfDocument(writer)) using (var document = new Document(pdf)) { document.Add(new Paragraph("नमस्ते, दुनिया!")); document.Add(new Paragraph("यह iText 7 के साथ बनाया गया PDF है।")); }}2. PDFsharp
PDFsharp .NET के लिए एक हल्का ओपन-सोर्स पुस्तकालय है (GDI+ के लिए भी संस्करण उपलब्ध है)। यह सरल कार्यों के लिए उपयुक्त है: टेक्स्ट, तालिकाओं, चित्रों के साथ दस्तावेज़ बनाना।
क्षमताएँ:
- सरल और सहज API।
- फ़ॉन्ट समर्थन (सिरिलिक सहित)।
- ग्राफिकल प्रिमिटिव (रेखाएँ, आकृतियाँ) के साथ कार्य।
- मुफ्त (MIT लाइसेंस)।
नुकसान:
- जटिल तत्वों (फॉर्म, बुकमार्क) के लिए सीमित समर्थन।
- बड़ी मात्रा में iText से धीमा।
उदाहरण:
using PdfSharp.Pdf;using PdfSharp.Drawing;
public void CreatePdf(string filePath){ using (var document = new PdfDocument()) { var page = document.AddPage(); using (var gfx = XGraphics.FromPdfPage(page)) { var font = new XFont("Arial", 20, XFontStyle.Regular); gfx.DrawString("नमस्ते, दुनिया!", font, XBrushes.Black, new XPoint(40, 100)); } document.Save(filePath); }}3. QuestPDF
QuestPDF एक आधुनिक पुस्तकालय है जिसमें fluent API है, जो "layout-first" अवधारणा से प्रेरित है। यह दस्तावेज़ संरचना को घोषणात्मक रूप से वर्णित करने की अनुमति देता है, जो जटिल लेआउट बनाने को बहुत सरल बनाता है।
क्षमताएँ:
- घोषणात्मक शैली (WPF या HTML की तरह)।
- स्वचालित पृष्ठ विभाजन (pagination)।
- तालिकाओं, शीर्षकों, हेडर और फुटर के लिए समर्थन।
- सीमा के साथ मुफ्त संस्करण (10 पृष्ठों तक)।
नुकसान:
- मुफ्त संस्करण सीमित है।
- iText की तुलना में कम लचीलापन (मनमाना ग्राफिक्स बनाना कठिन)।
उदाहरण:
using QuestPDF.Fluent;using QuestPDF.Helpers;using QuestPDF.Infrastructure;
public void CreatePdf(string filePath){ Document.Create(container => { container.Page(page => { page.Size(PageSizes.A4); page.Margin(30); page.Content().Column(col => { col.Item().Text("नमस्ते, दुनिया!").FontSize(20); col.Item().Text("यह QuestPDF है।").FontSize(14); }); });