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:

  • AnnotationsAnnotationCollection pro tuto stránku, podporující AddLinkAnnotation a 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.


Začínáme

Související zdroje