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— aAnnotationCollectionaz adott oldalhoz, támogatja aAddLinkAnnotation-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
Operatorsgyű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.