Aspose.PDF FOSS for .NET là một thư viện .NET miễn phí, được cấp phép MIT, dùng để đọc, tạo và thao tác các tài liệu PDF. Được phát hành dưới giấy phép mã nguồn mở linh hoạt, nó loại bỏ rào cản truyền thống đối với khả năng PDF cấp doanh nghiệp — mọi tính năng trong thư viện đều có sẵn mà không cần mua giấy phép thương mại.
Aspose.PDF FOSS cho .NET là gì?
Thư viện này nhắm tới .NET 8 và các phiên bản sau. Nó được xuất bản lên NuGet dưới ID gói Aspose.Pdf.Foss và có thể được thêm vào bất kỳ dự án .NET 8+ nào bằng một lệnh duy nhất:
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha
Không gian tên chính là Aspose.Pdf, với các không gian tên liên quan bao gồm Aspose.Pdf.Text, Aspose.Pdf.Forms và Aspose.Pdf.Facades. Thư viện cung cấp 805 lớp API công khai được hỗ trợ bởi 7,488 yêu cầu được tài liệu hoá và 100 đoạn mã được trích xuất trực tiếp từ bộ kiểm thử.
Các khả năng cốt lõi
API bao phủ toàn bộ vòng đời của một tài liệu PDF:
- Tạo và tải tài liệu —
Document.Create()tạo một tài liệu trống;Document.Open(data)tải một PDF hiện có từ mảng byte hoặc luồng. - Truy cập trang và nội dung — bộ sưu tập
Pagescung cấp truy cập theo chỉ mục bắt đầu từ 1 tới các trang riêng lẻ, mỗi trang cho phép truy cập các chú thích, toán tử và luồng nội dung. - Trích xuất văn bản —
TextFragmentAbsorberduyệt một trang và thu thập mọi đoạn văn bản, với tùy chọn lọc cụm từ tìm kiếm và hỗ trợ biểu thức chính quy. - Hành động tương tác —
PdfAction.CreateUri,PdfAction.CreateGoTo,PdfAction.CreateJavaScriptvàPdfAction.CreateLaunchbao gồm các loại hành động PDF tiêu chuẩn. - Chú thích —
AnnotationCollection.AddLinkAnnotationgắn một chú thích liên kết kèm hành động liên quan vào bất kỳ vùng hình chữ nhật nào trên trang. - Biểu mẫu — không gian tên
Aspose.Pdf.FormsvàAspose.Pdf.Facadescung cấp quyền truy cập vào các trường AcroForm, định dạng hiển thị và các phần mở rộng JavaScript ở mức trường.
Mở tài liệu và thêm liên kết
Ví dụ sau đây minh họa mẫu vòng lại: tạo một tài liệu PDF mới, thêm chú thích liên kết hành động URI vào trang đầu tiên, lưu vào luồng và tải lại để xác minh chú thích vẫn tồn tại.
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
Phương thức tĩnh Document.Open chấp nhận một byte[] hoặc một luồng. doc.Pages[1] truy cập trang đầu tiên bằng chỉ mục bắt đầu từ 1 — cùng quy ước chỉ mục được sử dụng trong toàn bộ thư viện. Sau khi lưu vào một MemoryStream, tài liệu có thể được tải lại và tất cả các chú thích được bảo toàn.
Tìm kiếm văn bản trên một trang
TextFragmentAbsorber cung cấp khả năng tìm kiếm từ khóa trên luồng nội dung của bất kỳ trang nào. Truyền một cụm từ tìm kiếm vào hàm khởi tạo để giới hạn kết quả, hoặc sử dụng phiên bản không đối số để thu thập tất cả các đoạn:
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}");
}
Mỗi TextFragment trong bộ sưu tập kết quả đều cung cấp các thuộc tính bao gồm Text, FontSize và dữ liệu vị trí, giúp việc xây dựng các quy trình tìm kiếm, đánh dấu hoặc che dấu trên các đoạn trích xuất trở nên đơn giản.
Giấy phép MIT và Phát triển mở
Tất cả mã nguồn được công bố trên GitHub và phân phối theo giấy phép MIT. Không có dấu watermark đánh giá, không giới hạn sử dụng, và không có tệp giấy phép riêng để quản lý. Thuộc tính Document.IsLicensed luôn trả về true trong bản dựng FOSS.
Gói hiện đang ở phiên bản 0.1.0-alpha, phản ánh quá trình phát triển tích cực. Bề mặt API đã khá đáng kể — 805 lớp, 7,488 yêu cầu — và chỉ định alpha cho biết các chữ ký API có thể thay đổi trước khi phát hành 1.0.