التلاعب بالجداول في ملف PDF موجود

التعامل مع الجداول في ملفات PDF الموجودة

أحد أقدم الميزات التي يدعمها Aspose.PDF لـ .NET هي قدراته في التعامل مع الجداول ويوفر دعمًا كبيرًا لإضافة جداول في ملفات PDF التي يتم إنشاؤها من الصفر أو أي ملفات PDF موجودة. تحصل أيضًا على القدرة على دمج الجدول مع قاعدة البيانات (DOM) لإنشاء جداول ديناميكية بناءً على محتويات قاعدة البيانات. في هذا الإصدار الجديد، قمنا بتنفيذ ميزة جديدة للبحث وتحليل الجداول البسيطة الموجودة بالفعل على صفحة من مستند PDF. توفر فئة جديدة تُدعى Aspose.PDF.Text.TableAbsorber هذه القدرات. استخدام TableAbsorber مشابه جدًا لفئة TextFragmentAbsorber الموجودة. يوضح الجزء التالي من الشفرة الخطوات لتحديث المحتويات في خلية جدول محددة.

يعمل الجزء التالي من الشفرة أيضًا مع مكتبة Aspose.PDF.Drawing.

// للحصول على أمثلة كاملة وملفات بيانات، يرجى الذهاب إلى https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// المسار إلى دليل المستندات.
string dataDir = RunExamples.GetDataDir_AsposePdf_Tables();

// تحميل ملف PDF الموجود
Document pdfDocument = new Document(dataDir + "input.pdf");
// إنشاء كائن TableAbsorber للعثور على الجداول
TableAbsorber absorber = new TableAbsorber();

// زيارة الصفحة الأولى بواسطة الجهاز
absorber.Visit(pdfDocument.Pages[1]);

// الحصول على الوصول إلى الجدول الأول على الصفحة، خليتهم الأولى والأجزاء النصية فيها
TextFragment fragment = absorber.TableList[0].RowList[0].CellList[0].TextFragments[1];

// تغيير نص الجزء النصي الأول في الخلية
fragment.Text = "مرحبا بالعالم";
dataDir = dataDir + "ManipulateTable_out.pdf";
pdfDocument.Save(dataDir);

استبدال جدول قديم بجدول جديد في مستند PDF

في حالة الحاجة للعثور على جدول معين واستبداله بالجدول المطلوب، يمكنك استخدام الطريقة Replace() للفئة TableAbsorber للقيام بذلك. يوضح المثال التالي الوظيفة لاستبدال الجدول داخل مستند PDF:

// للحصول على الأمثلة الكاملة وملفات البيانات، يرجى الذهاب إلى https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// المسار إلى دليل المستندات.
string dataDir = RunExamples.GetDataDir_AsposePdf_Tables();

// تحميل مستند PDF الحالي
Document pdfDocument = new Document(dataDir + @"Table_input2.pdf");

// إنشاء كائن TableAbsorber للعثور على الجداول
TableAbsorber absorber = new TableAbsorber();

// زيارة الصفحة الأولى بواسطة absorber
absorber.Visit(pdfDocument.Pages[1]);

// الحصول على أول جدول في الصفحة
AbsorbedTable table = absorber.TableList[0];

// إنشاء جدول جديد
Table newTable = new Table();
newTable.ColumnWidths = "100 100 100";
newTable.DefaultCellBorder = new BorderInfo(BorderSide.All, 1F);

Row row = newTable.Rows.Add();
row.Cells.Add("العمود 1");
row.Cells.Add("العمود 2");
row.Cells.Add("العمود 3");

// استبدال الجدول بجدول جديد
absorber.Replace(pdfDocument.Pages[1], table, newTable);

// حفظ المستند
pdfDocument.Save(dataDir + "TableReplaced_out.pdf");