Aspose.PDF FOSS for .NET هي مكتبة .NET مجانية مرخصة بموجب رخصة MIT لقراءة وإنشاء ومعالجة مستندات PDF. تم إصدارها تحت رخصة مفتوحة المصدر مرنة، وتزيل الحاجز التقليدي أمام قدرات PDF على مستوى المؤسسات — كل ميزة في المكتبة متاحة دون الحاجة لشراء رخصة تجارية.
ما هو Aspose.PDF FOSS لـ .NET؟
المكتبة تستهدف .NET 8 وما بعده. تم نشرها على NuGet تحت معرف الحزمة Aspose.Pdf.Foss ويمكن إضافتها إلى أي مشروع .NET 8+ بأمر واحد:
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha
المساحة الاسمية الأساسية هي Aspose.Pdf، مع مساحات اسمية ذات صلة تشمل Aspose.Pdf.Text، Aspose.Pdf.Forms، وAspose.Pdf.Facades. المكتبة تعرض 805 فئات API عامة مدعومة بـ 7,488 مطالبة موثقة و100 مقتطفات شفرة مستخرجة مباشرةً من مجموعة الاختبارات.
القدرات الأساسية
تغطي API كامل دورة حياة مستند PDF:
- إنشاء المستند وتحميله —
Document.Create()ينتج مستندًا فارغًا؛Document.Open(data)يحمل ملف PDF موجود من مصفوفة بايت أو تدفق. - الوصول إلى الصفحات والمحتوى — مجموعة
Pagesتوفر وصولًا مفهرسًا يبدأ من 1 إلى الصفحات الفردية، كل منها يكشف عن التعليقات التوضيحية، المشغلات، وتدفقات المحتوى. - استخراج النص —
TextFragmentAbsorberيزور صفحة ويجمع كل جزء نصي، مع إمكانية تصفية عبارات البحث ودعم التعبيرات النمطية. - الإجراءات التفاعلية —
PdfAction.CreateUri،PdfAction.CreateGoTo،PdfAction.CreateJavaScript، وPdfAction.CreateLaunchتغطي أنواع إجراءات PDF القياسية. - التعليقات التوضيحية —
AnnotationCollection.AddLinkAnnotationيرفق تعليق رابط مع إجراء مرتبط بأي منطقة مستطيلة على الصفحة. - النماذج — مساحة الاسم
Aspose.Pdf.FormsوAspose.Pdf.Facadesتوفران وصولًا إلى حقول AcroForm، تنسيق المظهر، وإضافات JavaScript على مستوى الحقل.
فتح مستند وإضافة رابط
يوضح المثال التالي نمط الجولة الكاملة: إنشاء مستند PDF جديد، إضافة توضيح ارتباط إجراء URI إلى الصفحة الأولى، حفظه إلى تدفق، وإعادة تحميله للتحقق من بقاء التوضيح.
using var doc = Document.Create();
doc.Pages.Add();
var page = doc.Pages[1];
var action = PdfAction.CreateUri("https://aspose.com");
page.Annotations.AddLinkAnnotation(new Rectangle(50, 700, 200, 720), action);
using var ms = new MemoryStream();
doc.Save(ms);
ms.Position = 0;
using var doc2 = Document.Open(ms.ToArray());
var annot = (LinkAnnotation)doc2.Pages[1].Annotations[1];
Console.WriteLine(annot.Uri); // https://aspose.com
طريقة Document.Open الساكنة تقبل byte[] أو تدفق. doc.Pages[1] تصل إلى الصفحة الأولى باستخدام فهرس يبدأ من 1 — نفس اتفاقية الفهرسة المستخدمة في جميع أنحاء المكتبة. بعد الحفظ إلى MemoryStream، يمكن إعادة تحميل المستند وتظل جميع التعليقات التوضيحية محفوظة.
البحث عن النص في صفحة
TextFragmentAbsorber يوفر بحثًا بالكلمات المفتاحية عبر تدفق المحتوى لأي صفحة. مرّر عبارة بحث إلى المُنشئ لتقييد النتائج، أو استخدم التحميل بدون وسائط لجمع كل القطع:
using var doc = Document.Open("path/to/document.pdf");
var absorber = new TextFragmentAbsorber("Hello");
absorber.Visit(doc.Pages[1]);
foreach (var fragment in absorber.TextFragments)
{
Console.WriteLine($"Found: {fragment.Text}");
}
كل TextFragment في المجموعة الناتجة يكشف عن خصائص تشمل Text، FontSize، وبيانات الموقع، مما يجعل من السهل بناء تدفقات عمل البحث أو التمييز أو الإخفاء فوق القطع المستخرجة.
رخصة MIT والتنمية المفتوحة
جميع شفرة المصدر منشورة على GitHub وموزعة بموجب رخصة MIT. لا توجد علامة مائية للتقييم، ولا حد للاستخدام، ولا ملف ترخيص منفصل لإدارته. خاصية Document.IsLicensed تُعيد دائمًا true في بناء FOSS.
الحزمة حاليًا في الإصدار 0.1.0-alpha، مما يعكس التطوير النشط. سطح API كبير بالفعل — 805 فئات، 7,488 مطالبة — وتُشير تسمية alpha إلى أن توقيعات API قد تتطور قبل الإصدار 1.0.