C# (.NET) में QuestPDF से PDF रिपोर्ट जनरेशन
.NET प्लेटफॉर्म पर आधुनिक डेवलपमेंट में पेशेवर PDF दस्तावेज़ बनाने की ज़रूरत अक्सर होती है: रिपोर्ट, इनवॉइस, चालान, एनालिटिकल समरी और अन्य बिज़नेस डॉक्यूमेंट। QuestPDF लाइब्रेरी C# में PDF जनरेशन के लिए एक आधुनिक, हाई-परफॉर्मेंस और आसान समाधान है। इसे किसी तीसरे पक्ष के टूल (जैसे wkhtmltopdf) की ज़रूरत नहीं है और यह पूरी तरह से .NET मैनेज्ड कोड में काम करती है।
इस लेख में हम विस्तार से जानेंगे कि QuestPDF के साथ कैसे शुरुआत करें, प्रोजेक्ट सेट करें, टेबल, इमेज और टेक्स्ट फ़ॉर्मेटिंग के साथ एक सरल रिपोर्ट बनाएं।
इंस्टॉलेशन और सेटअप
QuestPDF NuGet के ज़रिए उपलब्ध है। इसे इंस्टॉल करने के लिए Package Manager Console या Visual Studio/Rider इंटरफ़ेस में यह कमांड चलाएं:
Install-Package QuestPDF
या .NET CLI के ज़रिए:
dotnet add package QuestPDF
इंस्टॉल करने के बाद एक बार लाइसेंस इनिशियलाइज़ करना ज़रूरी है। कमर्शियल उपयोग के लिए पेड लाइसेंस चाहिए, लेकिन टेस्टिंग और छोटे प्रोजेक्ट्स के लिए वॉटरमार्क के साथ फ्री मोड उपलब्ध है। वॉटरमार्क हटाने के लिए प्रोग्राम की शुरुआत में यह जोड़ें:
QuestPDF.Settings.License = LicenseType.Community;
// या कमर्शियल उपयोग के लिए:
// QuestPDF.Settings.License = LicenseType.Professional;
पहला PDF दस्तावेज़ बनाना
QuestPDF Fluent API का उपयोग करता है — आप मेथड कॉल्स के ज़रिए दस्तावेज़ की संरचना का वर्णन करते हैं। एक न्यूनतम उदाहरण देखें:
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;
// लाइसेंस सेट करें (अनिवार्य)
QuestPDF.Settings.License = LicenseType.Community;
// दस्तावेज़ बनाएं
Document.Create(container =>
{
container.Page(page =>
{
page.Size(PageSizes.A4);
page.Margin(2, Unit.Centimetre);
page.DefaultTextStyle(x => x.FontSize(12));
page.Header()
.Text("बिक्री रिपोर्ट")
.SemiBold().FontSize(24).FontColor(Colors.Blue.Medium);
page.Content()
.PaddingVertical(1, Unit.Centimetre)
.Column(col =>
{
col.Item().Text("तारीख: " + DateTime.Now.ToShortDateString());
col.Item().PaddingBottom(10).LineHorizontal(1);
col.Item().Text("नीचे डेटा के साथ एक तालिका दी गई है:");
});
page.Footer()
.AlignCenter()
.Text(x =>
{
x.Span("पृष्ठ ");
x.CurrentPageNumber();
});
});
})
.GeneratePdf("report.pdf");
यह कोड एक PDF फ़ाइल बनाता है जिसमें हेडर, तारीख, क्षैतिज रेखा और फुटर में पृष्ठ संख्या होती है।
टेबल के साथ काम करना
सबसे आम कार्यों में से एक है टेबल डेटा प्रदर्शित करना। QuestPDF कॉलम की चौड़ाई को ऑटोमैटिक एडजस्ट करने के लिए एक शक्तिशाली API प्रदान करता है:
container.Page(page =>
{
page.Size(PageSizes.A4);
page.Margin(20);
page.Content().Table(table =>
{
// कॉलम परिभाषित करें (उपलब्ध स्थान के प्रतिशत में चौड़ाई)
table.ColumnsDefinition(columns =>
{
columns.RelativeColumn(3); // उत्पाद का नाम
columns.RelativeColumn(1); // मात्रा
columns.RelativeColumn(1); // कीमत
columns.RelativeColumn(1); // कुल राशि
});
// टेबल का हेडर
table.Header(header =>
{
header.Cell().Background(Colors.Grey.Lighten2).Padding(5).Text("उत्पाद");
header.Cell().Background(Colors.Grey.Lighten2).Padding(5).AlignCenter().Text("मात्रा");
header.Cell().Background(Colors.Grey.Lighten2).Padding(5).AlignCenter().Text("कीमत");
header.Cell().Background(Colors.Grey.Lighten2).Padding(5).AlignCenter().Text("कुल राशि");
});
// डेटा