Aspose.PDF FOSS for .NET เป็นไลบรารี .NET ฟรีที่ได้รับใบอนุญาตแบบ MIT สำหรับการอ่าน, สร้าง, และจัดการเอกสาร PDF. เปิดตัวภายใต้ใบอนุญาตโอเพนซอร์สที่ยืดหยุ่น, มันขจัดอุปสรรคแบบดั้งเดิมต่อความสามารถระดับองค์กรของ PDF — ทุกฟีเจอร์ในไลบรารีพร้อมใช้งานโดยไม่ต้องซื้อใบอนุญาตเชิงพาณิชย์.
Aspose.PDF FOSS for .NET คืออะไร?
ไลบรารีนี้มุ่งเป้าไปที่ .NET 8 และรุ่นต่อไป มันถูกเผยแพร่บน NuGet ภายใต้ ID ของแพ็กเกจ 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. ไลบรารีเปิดเผยคลาส API สาธารณะจำนวน 805 คลาส ที่สนับสนุนโดยข้ออ้างที่บันทึกไว้ 7,488 รายการและโค้ดสแนปช็อต 100 ชิ้นที่ดึงมาจากชุดทดสอบโดยตรง.
ความสามารถหลัก
API ครอบคลุมวงจรชีวิตทั้งหมดของเอกสาร PDF:
- Document creation and loading —
Document.Create()สร้างเอกสารเปล่า;Document.Open(data)โหลด PDF ที่มีอยู่จากอาเรย์ไบต์หรือสตรีม. - Page and content access — คอลเลกชัน
Pagesให้การเข้าถึงแบบดัชนีเริ่มจาก 1 สำหรับหน้าแต่ละหน้า, แต่ละหน้าจะเปิดเผย annotations, operators, และ content streams. - Text extraction —
TextFragmentAbsorberเยี่ยมชมหน้าและรวบรวมทุก text fragment, พร้อมการกรอง search‑phrase แบบเลือกและการสนับสนุน regular expression. - Interactive actions —
PdfAction.CreateUri,PdfAction.CreateGoTo,PdfAction.CreateJavaScript, และPdfAction.CreateLaunchครอบคลุมประเภท PDF action มาตรฐาน. - Annotations —
AnnotationCollection.AddLinkAnnotationแนบ link annotation พร้อมการกระทำที่เกี่ยวข้องกับพื้นที่สี่เหลี่ยมใด ๆ บนหน้า. - Forms — เนมสเปซ
Aspose.Pdf.FormsและAspose.Pdf.Facadesให้การเข้าถึงฟิลด์ AcroForm, การจัดรูปแบบ appearance, และส่วนขยาย JavaScript ระดับฟิลด์.
การเปิดเอกสารและการเพิ่มลิงก์
ตัวอย่างต่อไปนี้แสดงรูปแบบ round‑trip: สร้างเอกสาร PDF ใหม่, เพิ่ม annotation ลิงก์การกระทำ URI ไปยังหน้าที่หนึ่ง, บันทึกลงสตรีม, แล้วโหลดใหม่เพื่อตรวจสอบว่า annotation ยังคงอยู่.
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
เมธอด static Document.Open รับค่า byte[] หรือสตรีม doc.Pages[1] เข้าถึงหน้าที่หนึ่งโดยใช้ดัชนีเริ่มจาก 1 — ซึ่งเป็นแนวทางการใช้ดัชนีเดียวกันทั่วทั้งไลบรารี หลังจากบันทึกเป็น MemoryStream เอกสารสามารถโหลดใหม่และหมายเหตุทั้งหมดจะถูกเก็บไว้.
การค้นหาข้อความบนหน้า
TextFragmentAbsorber ให้การค้นหาคำสำคัญบนสตรีมเนื้อหาของหน้าใดก็ได้ ส่งวลีการค้นหาไปยังคอนสตรัคเตอร์เพื่อจำกัดผลลัพธ์ หรือใช้ overload ที่ไม่มีอาร์กิวเมนต์เพื่อรวบรวมส่วนย่อยทั้งหมด:
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 คำอ้าง — และการกำหนดเป็นอัลฟ่าแสดงว่า ลายเซ็นของ API อาจเปลี่ยนแปลงก่อนการปล่อยเวอร์ชัน 1.0.