توليد تقارير PDF بلغة C# (.NET): iTextSharp، QuestPDF، PDFsharp

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

توليد تقارير PDF بلغة C# (.NET): نظرة عامة على أفضل المكتبات



إنشاء تقارير PDF هي إحدى المهام الأكثر شيوعًا في التطبيقات المؤسسية بلغة C# (.NET). سواء كان ذلك لتصدير البيانات للعميل، أو إنشاء فاتورة، أو لوحة تحليلية معقدة - ستحتاج إلى أداة موثوقة. في هذه المقالة، سنستعرض ثلاث مكتبات رئيسية: iTextSharp (وخليفته iText 7)، QuestPDF، وPDFsharp. ستتعرف على أي منها تختار لمهمة محددة، وسترى أمثلة عملية على الكود.



1. iTextSharp / iText 7 - الكلاسيكية والقوة



iTextSharp هو منفذ لمكتبة Java الشهيرة iText لمنصة .NET. الإصدار iText 7 (حزمة NuGet itext7) أعيدت كتابته بالكامل ويدعم واجهة برمجة تطبيقات حديثة. تتيح المكتبة إنشاء 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 - واجهة برمجة تطبيقات حديثة وموجزة



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

توصيات