كيفية إنشاء وإدراج اللوحات في PDFs في .NET

كيفية إنشاء وإدراج اللوحات في PDFs في .NET

يظهر هذا المقال كيفية إنشاء البرمجيات وإدراج اللوحات في ملفات PDF باستخدام Aspose.PDF Table Generator for .NET. يسهل ملحق توليد الطاولة ، مما يجعل من السهل إضافة لوحات مركبة ، مصممة - سواء للبيانات أو النماذج أو الأتمتة الديناميكية للمحتوى.

مشكلة العالم الحقيقي

إن إنشاء اللوحات المنظمة بشكل جيد في ملفات PDF يدوياً أمر غامض، وخاصة مع البيانات الديناميكية أو الكبيرة.تلقائي هذه العملية داخل تطبيقات .NET يوفر الوقت، ويضمن التماسك، والحد من الأخطاء البشرية.

نظرة عامة على الحل

Aspose.PDF Table Generator for .NET يتيح للمطورين تعريف وتنسيق وإدراج اللوحات في أي مكان في وثيقة PDF. APIs مرنة تسمح لك بالسيطرة على الصفوف والخلايا والمحتوى الخلوي - بما في ذلك النص، و HTML التجاعيد، والصور، والمساواة الرياضية (TeX).

المتطلبات

  • Visual Studio 2019 أو أحدث
  • .NET 6.0 أو أحدث
  • Aspose.PDF for .NET متوفر عبر NuGet
PM> Install-Package Aspose.PDF

تنفيذ خطوة بخطوة

الخطوة 1: تثبيت وتكوين Aspose.PDF

using Aspose.Pdf.Plugins;
using System.IO;

الخطوة 2: إنشاء جدول وإضافة إلى PDF

// Create TableGenerator
var generator = new TableGenerator();
// Create TableOptions and add a demo table to the first page
var options = new TableOptions()
    .InsertPageAfter(1)  // Insert after first page (or .InsertPageBefore(pageNum))
    .AddTable()
        .AddRow()
            .AddCell().AddParagraph(new HtmlFragment("<b>Header 1</b>"))
            .AddCell().AddParagraph(new TextFragment("Header 2"))
        .AddRow()
            .AddCell().AddParagraph(new TextFragment("Row 1 Cell 1"))
            .AddCell().AddParagraph(new TeXFragment("$E=mc^2$", true));
// Add input/output file sources
options.AddInput(new FileDataSource(@"C:\Samples\input.pdf"));
options.AddOutput(new FileDataSource(@"C:\Samples\output_table.pdf"));
// Process
generator.Process(options);

استخدام الحالات والتطبيقات (مع تعديلات الرمز)

1. إضافة جدول بعد أو قبل صفحة محددة

إدراج اللوحات في المواقع الدقيقة في وثيقتك:

var options = new TableOptions()
    .InsertPageAfter(2)   // or .InsertPageBefore(3)
    .AddTable()
        .AddRow()
            .AddCell().AddParagraph(new TextFragment("After Page 2"));

2. الجدول الديناميكي القائم على البيانات

اذهب من خلال المجموعات لإضافة صفوف وديناميكية والخلايا:

var data = new[] { new[] { "A", "B" }, new[] { "C", "D" } };
var tableBuilder = new TableOptions().AddTable();
foreach (var row in data)
{
    var rowBuilder = tableBuilder.AddRow();
    foreach (var cell in row)
    {
        rowBuilder.AddCell().AddParagraph(new TextFragment(cell));
    }
}

إضافة بقية هيكل الطاولة والعملية كما هو الحال عادة.

3. الدعم لمختلف أنواع المحتوى في الخلايا

الخلايا يمكن أن تحتوي على النص، HTML، الصور، أو معادلات TeX:

  • AddParagraph(new HtmlFragment("<b>Bold HTML</b>"))
  • AddParagraph(new TextFragment("Simple Text"))
  • AddParagraph(new TeXFragment("$a^2 + b^2 = c^2$", true))

4. إضافة العديد من اللوحات أو الترتيبات في PDF واحد

السلسلة تدعو إلى .AddTable() إدراج العديد من اللوحات في وثيقة واحدة.

5. Batch تولد التقارير مع اللوحات

إدراج الجدول تلقائيًا لمجموعة من PDFs أو إنتاج تقارير متعددة الصفحات عن طريق التمرير عبر الملفات ومصادر البيانات.

التحديات والحلول المشتركة

التحدي: وضع الجدول الدقيق أو إزالة المحتوى الحل: الاستخدام .InsertPageAfter(pageNum) أو .InsertPageBefore(pageNum) للتوجيه الدقيق.مشاهدة النتائج للتعديل.

التحدي: المعقدة، مصادر البيانات المتغيرةالحلول: بناء اللوحات ديناميكية في الرمز.استخدم الشرائح لإنشاء صفوف/خلايا لكل عنصر بيانات.

التحدي: تنسيق الخلايا أو المحتوى غير المدعومالحلول: اضغط على أنواع المحتوى المدعومة (النص، HtmlFragment، TeXFrage، الصورة).للحصول على ترتيب أكثر تقدما، فكر في ما بعد المعالجة.

أداء وأفضل الممارسات

  • توقعات الإنتاج قبل الأتمتة على نطاق واسع
  • استخدم البناءات الديناميكية لوحات الطول المتغير
  • طاولة السلسلة / الخلية / البناءات الوردية لتنظيف الهيكل
  • تأكيد إدخال PDFs قبل المعالجة

نموذج تنفيذ كامل

using Aspose.Pdf.Plugins;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        var generator = new TableGenerator();
        var options = new TableOptions()
            .InsertPageAfter(1)
            .AddTable()
                .AddRow()
                    .AddCell().AddParagraph(new HtmlFragment("<b>Header 1</b>"))
                    .AddCell().AddParagraph(new TextFragment("Header 2"))
                .AddRow()
                    .AddCell().AddParagraph(new TextFragment("Row 1 Cell 1"))
                    .AddCell().AddParagraph(new TeXFragment("$E=mc^2$", true));
        options.AddInput(new FileDataSource(@"C:\Samples\input.pdf"));
        options.AddOutput(new FileDataSource(@"C:\Samples\output_table.pdf"));
        generator.Process(options);
    }
}

استنتاجات

Aspose.PDF Table Generator for .NET يتيح للمطورين بناء وتصميم وإدراج اللوحات ببرمجيات في مستندات PDF.استخدم API المرن لترتيب ديناميكي، والهياكل المعقدة، والأتمتة السريعة – كلها من رمز C# نظيف وقابل للقراءة.

 عربي