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 loading —
Document.Create()erzeugt ein leeres Dokument;Document.Open(data)lädt ein vorhandenes PDF aus einem Byte‑Array oder Stream. - Page and content access — die
PagesSammlung bietet 1‑basierte indizierte Zugriffe auf einzelne Seiten, von denen jede Anmerkungen, Operatoren und Inhaltsstreams bereitstellt. - Text extraction —
TextFragmentAbsorberbesucht eine Seite und sammelt jedes Textfragment, mit optionaler Filterung nach Suchphrasen und Unterstützung regulärer Ausdrücke. - Interactive actions —
PdfAction.CreateUri,PdfAction.CreateGoTo,PdfAction.CreateJavaScriptundPdfAction.CreateLaunchdecken die Standard‑PDF‑Aktionstypen ab. - Annotations —
AnnotationCollection.AddLinkAnnotationfügt einer beliebigen rechteckigen Region auf einer Seite eine Link‑Annotation mit zugehöriger Aktion hinzu. - Forms — der
Aspose.Pdf.FormsNamespace undAspose.Pdf.Facadesbieten Zugriff auf AcroForm‑Felder, Darstellungsformatierung und feldspezifische JavaScript‑Erweiterungen.
Öffnen eines Dokuments und Hinzufügen eines Links
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.