Aspose.PDF FOSS for .NET یک کتابخانهٔ رایگان و دارای مجوز MIT برای .NET است که برای خواندن، ایجاد و دستکاری اسناد 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دسترسی ایندکسدار مبتنی بر ۱ به صفحات جداگانه را فراهم میکند که هر کدام حاوی حاشیهنویسیها، عملگرها و جریانهای محتوا هستند. - استخراج متن —
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] صفحهٔ اول را با ایندکس مبتنی بر ۱ دسترسی میدهد — همان قرارداد ایندکس که در سراسر کتابخانه استفاده میشود. پس از ذخیرهسازی به یک 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 تغییر کنند.