Aspose.PDF FOSS pentru .NET este o bibliotecă .NET gratuită, licențiată sub MIT, pentru citirea, crearea și manipularea documentelor PDF. Lansată sub o licență open-source permisivă, elimină bariera tradițională către capabilitățile PDF de nivel enterprise — fiecare funcționalitate din bibliotecă este disponibilă fără a achiziționa o licență comercială.
Ce este Aspose.PDF FOSS pentru .NET?
Biblioteca vizează .NET 8 și versiunile ulterioare. Este publicată pe NuGet sub ID-ul pachetului Aspose.Pdf.Foss și poate fi adăugată în orice proiect .NET 8+ cu o singură comandă:
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha
Namespace‑ul principal este Aspose.Pdf, cu namespace‑uri conexe care includ Aspose.Pdf.Text, Aspose.Pdf.Forms și Aspose.Pdf.Facades. Biblioteca expune 805 de clase publice API susținute de 7,488 de revendicări documentate și 100 de fragmente de cod extrase direct din suita de teste.
Capabilități de bază
API-ul acoperă întregul ciclu de viață al unui document PDF:
- Crearea și încărcarea documentului —
Document.Create()produce un document gol;Document.Open(data)încarcă un PDF existent dintr-un tablou de octeți sau flux. - Acces la pagină și conținut — colecția
Pagesoferă acces indexat începând de la 1 la paginile individuale, fiecare expunând adnotări, operatori și fluxuri de conținut. - Extracție de text —
TextFragmentAbsorbervizitează o pagină și colectează fiecare fragment de text, cu filtrare opțională a frazelor de căutare și suport pentru expresii regulate. - Acțiuni interactive —
PdfAction.CreateUri,PdfAction.CreateGoTo,PdfAction.CreateJavaScriptșiPdfAction.CreateLaunchacoperă tipurile standard de acțiuni PDF. - Adnotări —
AnnotationCollection.AddLinkAnnotationatașează o adnotare de tip link cu o acțiune asociată oricărei regiuni dreptunghiulare de pe o pagină. - Formulare — spațiul de nume
Aspose.Pdf.FormsșiAspose.Pdf.Facadesoferă acces la câmpurile AcroForm, formatarea aspectului și extensiile JavaScript la nivel de câmp.
Deschiderea unui document și adăugarea unui link
Următorul exemplu demonstrează modelul round‑trip: creează un document PDF nou, adaugă o adnotare de tip link cu acțiune URI pe prima pagină, salvează într-un flux și reîncarcă pentru a verifica că adnotarea persistă.
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
Metoda statică Document.Open acceptă un byte[] sau un flux. doc.Pages[1] accesează prima pagină prin index bazat pe 1 — aceeași convenție de indexare utilizată în întreaga bibliotecă. După salvarea într-un MemoryStream, documentul poate fi reîncărcat și toate adnotările sunt păstrate.
Căutarea textului pe o pagină
TextFragmentAbsorber furnizează căutare de cuvinte cheie în fluxul de conținut al oricărei pagini. Transmite o expresie de căutare constructorului pentru a restrânge rezultatele sau folosește suprasarcina fără argumente pentru a colecta toate fragmentele:
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}");
}
Fiecare TextFragment din colecția rezultată expune proprietăți, inclusiv Text, FontSize și date de poziționare, facilitând construirea de fluxuri de lucru de căutare, evidențiere sau redactare pe baza fragmentelor extrase.
Licența MIT și dezvoltarea deschisă
Tot codul sursă este publicat pe GitHub și distribuit sub Licența MIT. Nu există filigran de evaluare, nici limită de utilizare și nici un fișier de licență separat de gestionat. Proprietatea Document.IsLicensed returnează întotdeauna true în construcția FOSS.
Pachetul este în prezent la versiunea 0.1.0-alpha, reflectând dezvoltarea activă. Suprafața API este deja substanțială — 805 clase, 7,488 revendicări — și desemnarea alfa semnalează că semnăturile API pot evolua înainte de lansarea 1.0.