Az alapvető PDF dokumentumkezelés lefedi azokat a műveleteket, amelyek szinte minden PDF munkafolyamatban megjelennek: dokumentum megnyitása vagy létrehozása, oldalak és azok tartalmának elérése, annotációk olvasása és írása, szöveg kinyerése, valamint interaktív műveletekkel való munka. Aspose.PDF FOSS for .NET egy .NET 8+ API-t biztosít, amely ezeket a feladatokat egy konzisztens objektummodellen keresztül kezeli, amely a Document és Page típusokra épül.

Dokumentum életciklus: Létrehozás, Megnyitás, Mentés

Minden munkafolyamat egy új dokumentum létrehozásával vagy egy meglévő betöltésével kezdődik. Document.Create() egy új, üres Document példányt ad vissza. Document.Open(data) egy byte[] vagy Stream elfogadásával elemzi a PDF struktúrát:

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

Ez a kódrészlet megnyit egy minimális PDF-et, link annotációt ad hozzá az 1. oldalhoz, elmenti egy MemoryStream-ba, és ellenőrzi, hogy az annotáció újratöltés után megmarad-e. A Document.Save(Stream) túlterhelés a teljes frissített struktúrát írja ki; Document.ToArray() közvetlenül a bájtokat adja vissza.


Oldalhozzáférés és az Oldalak Gyűjteménye

A lapok a Pages tulajdonságon keresztül érhetők el 1‑alapú egész index használatával: doc.Pages[1] visszaadja az első lapot, doc.Pages[doc.Pages.Count] visszaadja az utolsót. Minden Page objektum a következőket teszi elérhetővé:

  • Annotations — a AnnotationCollection az adott oldalhoz, támogatja a AddLinkAnnotation-t és a meglévő annotációk típus szerinti felsorolását.
  • Tartalomfolyam operátorok — alacsony szintű hozzáférés az oldalrajzolási parancsokhoz a Operators gyűjteményen keresztül.

Az 1‑alapú index konzisztens az API-ban: annotáció‑keresések, GoTo művelet céloldal indexei, és minden egyéb oldalhivatkozás ugyanazt a konvenciót használja.


Szövegkinyerés a TextFragmentAbsorber-rel

TextFragmentAbsorber a szabványos belépési pont a PDF oldal szövegének olvasásához. Használja a paraméter nélküli konstruktort az összes töredék kinyeréséhez, vagy adjon meg egy keresőkifejezést a megfelelő szöveg szűréséhez:

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}");
}

Az absorber.Visit(page) hívásával egyetlen oldalt dolgozhat fel. Az eredményül kapott TextFragments gyűjtemény TextFragment objektumot tartalmaz; mindegyik exponálja az Text (a karakterlánc tartalma) és az FontSize (a megjelenített pontméret) értékeket. A második túlterhelés TextFragmentAbsorber(searchPhrase, isRegex) egy reguláris kifejezés jelzőt fogad el a mintára alapozott kereséshez.


Interaktív műveletek

PdfAction a gyári osztály minden szabványos PDF művelettípushoz. Négy statikus gyári metódus fedi le a leggyakoribb eseteket:

  • PdfAction.CreateUri(uri) — megnyit egy URL-t a felhasználó böngészőjében.
  • PdfAction.CreateGoTo(pageIndex, fitType) — navigál egy adott oldalra a dokumentumon belül.
  • PdfAction.CreateJavaScript(script) — végrehajt egy JavaScript karakterláncot a PDF megjelenítőben.
  • PdfAction.CreateLaunch(filePath) — elindít egy külső fájlt vagy alkalmazást.

A műveletek az oldalakhoz annotációkon keresztül vannak csatolva. AnnotationCollection.AddLinkAnnotation(rectangle, action) egy LinkAnnotation-t helyez el a megadott téglalap alakú területen a megadott művelettel.

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 megerősíti, hogy a megjegyzés link típusúként lett létrehozva. A Rectangle konstruktor a bal, alsó, jobb és felső koordinátákat veszi PDF felhasználói tér egységeiben.


Dokumentum metaadatok és licencelés

A Document osztály elérhetővé teszi a IsLicensed‑t (a FOSS buildben true‑t ad vissza), a JavaScript‑t (egy JavaScriptCollection dokumentumszintű szkriptekhez), és a DocumentActions‑t az olyan életciklus‑eseményekhez, mint a BeforeClosing és a BeforeSaving.

A FOSS csomagot a NuGet-en keresztül telepítik:

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

Nem szükséges licenckulcs. Az MIT licenc lehetővé teszi a kereskedelmi alkalmazásokban való használatot anélkül, hogy attribúciós követelmények lennének, kivéve a licencértesítés megőrzését.


Első lépések

Kapcsolódó erőforrások