Aspose.PDF FOSS for .NET ist eine kostenlose, MIT-lizenzierte .NET-Bibliothek zum Lesen, Erstellen und Manipulieren von PDF-Dokumenten. Unter einer permissiven Open‑Source‑Lizenz veröffentlicht, beseitigt sie die traditionelle Hürde für Enterprise‑Grade‑PDF‑Funktionen — jedes Feature in der Bibliothek ist ohne den Kauf einer kommerziellen Lizenz verfügbar.

Was ist Aspose.PDF FOSS für .NET?

Die Bibliothek zielt auf .NET 8 und höher ab. Sie wird unter der Paket‑ID Aspose.Pdf.Foss bei NuGet veröffentlicht und kann zu jedem .NET 8+ Projekt mit einem einzigen Befehl hinzugefügt werden:

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

Der primäre Namensraum ist Aspose.Pdf, mit zugehörigen Namensräumen Aspose.Pdf.Text, Aspose.Pdf.Forms und Aspose.Pdf.Facades. Die Bibliothek stellt 805 öffentliche API‑Klassen bereit, unterstützt durch 7.488 dokumentierte Behauptungen und 100 Code‑Snippets, die direkt aus der Test‑Suite extrahiert wurden.

Kernfunktionen

Die API deckt den gesamten Lebenszyklus eines PDF-Dokuments ab:

  • Document creation and loadingDocument.Create() erzeugt ein leeres Dokument; Document.Open(data) lädt ein vorhandenes PDF aus einem Byte‑Array oder Stream.
  • Page and content access — die Pages Sammlung bietet 1‑basierte indizierte Zugriffe auf einzelne Seiten, von denen jede Anmerkungen, Operatoren und Inhaltsstreams bereitstellt.
  • Text extractionTextFragmentAbsorber besucht eine Seite und sammelt jedes Textfragment, mit optionaler Filterung nach Suchphrasen und Unterstützung regulärer Ausdrücke.
  • Interactive actionsPdfAction.CreateUri, PdfAction.CreateGoTo, PdfAction.CreateJavaScript und PdfAction.CreateLaunch decken die Standard‑PDF‑Aktionstypen ab.
  • AnnotationsAnnotationCollection.AddLinkAnnotation fügt einer beliebigen rechteckigen Region auf einer Seite eine Link‑Annotation mit zugehöriger Aktion hinzu.
  • Forms — der Aspose.Pdf.Forms Namespace und Aspose.Pdf.Facades bieten Zugriff auf AcroForm‑Felder, Darstellungsformatierung und feldspezifische JavaScript‑Erweiterungen.

Das folgende Beispiel demonstriert das Round‑Trip‑Muster: Erstellen Sie ein neues PDF‑Dokument, fügen Sie der ersten Seite eine URI‑Action‑Link‑Annotation hinzu, speichern Sie in einen Stream und laden Sie erneut, um zu überprüfen, dass die Annotation erhalten bleibt.

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

Die Document.Open statische Methode akzeptiert ein byte[] oder einen Stream. doc.Pages[1] greift auf die erste Seite über einen 1‑basierten Index zu – dieselbe Indexkonvention, die in der gesamten Bibliothek verwendet wird. Nach dem Speichern in ein MemoryStream kann das Dokument neu geladen werden und alle Anmerkungen bleiben erhalten.


Text auf einer Seite suchen

TextFragmentAbsorber bietet die Stichwortsuche über den Inhaltsstrom einer beliebigen Seite. Übergeben Sie einen Suchbegriff an den Konstruktor, um die Ergebnisse einzuschränken, oder verwenden Sie die überladene Methode ohne Argumente, um alle Fragmente zu sammeln:

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

Jedes TextFragment in der resultierenden Sammlung stellt Eigenschaften bereit, darunter Text, FontSize und Positionsdaten, was es einfach macht, Such‑, Hervorhebungs‑ oder Redaktions‑Workflows auf den extrahierten Fragmenten aufzubauen.


MIT-Lizenz und offene Entwicklung

Der gesamte Quellcode wird auf GitHub veröffentlicht und unter der MIT License verteilt. Es gibt kein Evaluationswasserzeichen, keine Nutzungslimitierung und keine separate Lizenzdatei zu verwalten. Die Document.IsLicensed‑Eigenschaft gibt immer true im FOSS‑Build zurück.

Das Paket befindet sich derzeit in Version 0.1.0-alpha, was aktive Entwicklung widerspiegelt. Die API-Oberfläche ist bereits umfangreich — 805 Klassen, 7.488 Ansprüche — und die Alpha-Bezeichnung signalisiert, dass API-Signaturen vor der Version 1.0 noch weiterentwickelt werden können.


Erste Schritte

Verwandte Ressourcen