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.FormsAspose.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ệuDocument.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 Pages cung 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ảnTextFragmentAbsorber duyệ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ácPdfAction.CreateUri, PdfAction.CreateGoTo, PdfAction.CreateJavaScriptPdfAction.CreateLaunch bao gồm các loại hành động PDF tiêu chuẩn.
  • Chú thíchAnnotationCollection.AddLinkAnnotation gắ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.FormsAspose.Pdf.Facades cung 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.


Bắt đầu

Tài nguyên liên quan