Gestionarea de bază a documentelor PDF acoperă operaţiunile care apar în aproape fiecare flux de lucru PDF: deschiderea sau crearea unui document, accesarea paginilor şi a conţinutului acestora, citirea şi scrierea adnotărilor, extragerea textului şi lucrul cu acţiuni interactive. Aspose.PDF FOSS for .NET oferă un API .NET 8+ care gestionează toate aceste sarcini printr-un model de obiecte consistent centrat pe tipurile Document şi Page.

Ciclul de viață al documentului: Creare, Deschidere, Salvare

Fiecare flux de lucru începe fie prin crearea unui document nou, fie prin încărcarea unuia existent. Document.Create() returnează o nouă instanță goală Document. Document.Open(data) acceptă un byte[] sau un Stream și analizează structura PDF:

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

Acest fragment deschide un PDF minimal, adaugă o adnotare de tip link pe pagina 1, salvează într-un MemoryStream și verifică că adnotarea este păstrată după reîncărcare. Suprasarcina Document.Save(Stream) scrie structura completă actualizată; Document.ToArray() returnează direct octeții.


Acces la pagină și colecția de pagini

Paginile sunt accesate prin proprietatea Pages utilizând un index întreg bazat pe 1: doc.Pages[1] returnează prima pagină, doc.Pages[doc.Pages.Count] returnează ultima. Fiecare obiect Page expune:

  • AnnotationsAnnotationCollection pentru acea pagină, suportând AddLinkAnnotation și enumerarea adnotărilor existente pe tip.
  • Operatorii fluxului de conținut — acces de nivel scăzut la comenzile de desenare a paginii prin colecția Operators.

Indexul bazat pe 1 este consecvent în tot API-ul: căutările de adnotări, indicii paginilor destinație ale acțiunii GoTo și toate celelalte referințe la pagini folosesc aceeași convenție.


Extracție de text cu TextFragmentAbsorber

TextFragmentAbsorber este punctul de intrare standard pentru citirea textului dintr-o pagină PDF. Utilizaţi constructorul fără argumente pentru a extrage toate fragmentele, sau transmiteţi o expresie de căutare pentru a filtra textul care se potriveşte:

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} size={fragment.FontSize}");
}

Apelaţi absorber.Visit(page) pentru a procesa o singură pagină. Colecţia TextFragments rezultată conţine obiecte TextFragment; fiecare expune Text (conţinutul şirului) şi FontSize (dimensiunea punctului redat). O a doua suprasarcină TextFragmentAbsorber(searchPhrase, isRegex) acceptă un flag de expresie regulată pentru căutare bazată pe model.


Acțiuni interactive

PdfAction este clasa fabrică pentru toate tipurile standard de acțiuni PDF. Patru metode statice de fabrică acoperă cele mai comune cazuri:

  • PdfAction.CreateUri(uri) — deschide un URL în browserul utilizatorului.
  • PdfAction.CreateGoTo(pageIndex, fitType) — navighează la o pagină specifică din document.
  • PdfAction.CreateJavaScript(script) — execută un șir JavaScript în vizualizatorul PDF.
  • PdfAction.CreateLaunch(filePath) — lansează un fișier extern sau o aplicație.

Acțiunile sunt atașate paginilor prin adnotări. AnnotationCollection.AddLinkAnnotation(rectangle, action) plasează o LinkAnnotation peste regiunea rectangulară specificată cu acțiunea dată atașată:

using var doc = Document.Create();
doc.Pages.Add();
var page = doc.Pages[1];
var action = PdfAction.CreateUri("https://example.org");
var annot = page.Annotations.AddLinkAnnotation(new Rectangle(10, 10, 100, 30), action);
Console.WriteLine(page.Annotations.Count);      // 1
Console.WriteLine(annot.AnnotationType);         // Link

AnnotationType.Link confirmă că adnotarea a fost creată ca tip link. Constructorul Rectangle primește coordonatele stânga, jos, dreapta și sus în unități de spațiu utilizator PDF.


Metadatele documentului și licențierea

Clasa Document expune IsLicensed (returnează true în versiunea FOSS), JavaScript (un JavaScriptCollection pentru scripturi la nivel de document) și DocumentActions pentru evenimentele de ciclu de viață, cum ar fi BeforeClosing și BeforeSaving.

Pachetul FOSS este instalat prin NuGet:

dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha

Nu este necesară nicio cheie de licență. Licența MIT permite utilizarea în aplicații comerciale fără cerințe de atribuire, în afara păstrării notificării de licență.


Începeți

Resurse conexe