Základní správa PDF dokumentů zahrnuje operace, které se objevují téměř v každém PDF workflow: otevírání nebo vytváření dokumentu, přístup k stránkám a jejich obsahu, čtení a zápis anotací, extrakci textu a práci s interaktivními akcemi. Aspose.PDF FOSS for .NET poskytuje .NET 8+ API, které zvládá všechny tyto úkoly prostřednictvím konzistentního objektového modelu zaměřeného na typy Document a Page.
Životní cyklus dokumentu: Vytvořit, Otevřít, Uložit
Každý pracovní postup začíná buď vytvořením nového dokumentu, nebo načtením existujícího. Document.Create() vrací novou, prázdnou Document instanci. Document.Open(data) přijímá byte[] nebo Stream a analyzuje strukturu 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
Tento úryvek otevře minimální PDF, přidá odkazovou anotaci na stránku 1, uloží do MemoryStream a ověří, že anotace je po načtení zachována. Přetížení Document.Save(Stream) zapíše kompletní aktualizovanou strukturu; Document.ToArray() vrací bajty přímo.
Přístup ke stránkám a kolekce stránek
Stránky jsou přístupné přes vlastnost Pages pomocí celočíselného indexu začínajícího od 1: doc.Pages[1] vrací první stránku, doc.Pages[doc.Pages.Count] vrací poslední. Každý objekt Page vystavuje:
Annotations—AnnotationCollectionpro tuto stránku, podporujícíAddLinkAnnotationa výčtové zobrazení existujících anotací podle typu.- Operátory proudu obsahu — nízkoúrovňový přístup k příkazům kreslení stránky prostřednictvím kolekce
Operators.
Index založený na 1 je v celém API konzistentní: vyhledávání anotací, indexy cílových stránek akce GoTo a všechny ostatní odkazy na stránky používají stejnou konvenci.
Extrahování textu s TextFragmentAbsorber
TextFragmentAbsorber je standardní vstupní bod pro čtení textu z PDF stránky. Použijte konstruktor bez argumentů k extrahování všech fragmentů nebo předávejte vyhledávací frázi pro filtrování na odpovídající text:
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}");
}
Zavolejte absorber.Visit(page) k zpracování jedné stránky. Výsledná kolekce TextFragments obsahuje TextFragment objektů; každý poskytuje Text (řetězcový obsah) a FontSize (vykreslenou velikost v bodech). Druhá přetížení TextFragmentAbsorber(searchPhrase, isRegex) přijímá příznak regulárního výrazu pro vyhledávání založené na vzoru.
Interaktivní akce
PdfAction je tovární třída pro všechny standardní typy akcí PDF. Čtyři statické tovární metody pokrývají nejčastější případy:
PdfAction.CreateUri(uri)— otevře URL v prohlížeči uživatele.PdfAction.CreateGoTo(pageIndex, fitType)— přejde na konkrétní stránku v dokumentu.PdfAction.CreateJavaScript(script)— spustí řetězec JavaScriptu v PDF prohlížeči.PdfAction.CreateLaunch(filePath)— spustí externí soubor nebo aplikaci.
Akce jsou připojeny k stránkám pomocí anotací. AnnotationCollection.AddLinkAnnotation(rectangle, action) umístí LinkAnnotation nad určený obdélníkový region s připojenou danou akcí:
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 potvrzuje, že anotace byla vytvořena jako typ odkazu. Konstruktor Rectangle přijímá souřadnice left, bottom, right a top v jednotkách uživatelského prostoru PDF.
Metadata dokumentu a licencování
Třída Document exponuje IsLicensed (vrací true ve FOSS sestavení), JavaScript (JavaScriptCollection pro skripty na úrovni dokumentu) a DocumentActions pro události životního cyklu, jako jsou BeforeClosing a BeforeSaving.
Balíček FOSS je nainstalován pomocí NuGet:
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha
Není vyžadován žádný licenční klíč. Licence MIT umožňuje použití v komerčních aplikacích bez požadavků na atribuci, kromě zachování oznámení o licenci.