Aspose.PDF FOSS for .NET er et gratis, MIT‑lisensiert .NET‑bibliotek for lesing, oppretting og manipulering av PDF‑dokumenter. Utgitt under en tillatende åpen‑kildekode‑lisens, fjerner det den tradisjonelle barrieren til PDF‑funksjonalitet på bedriftsnivå — hver funksjon i biblioteket er tilgjengelig uten å kjøpe en kommersiell lisens.

Hva er Aspose.PDF FOSS for .NET?

Biblioteket er rettet mot .NET 8 og nyere. Det er publisert til NuGet under pakke-ID Aspose.Pdf.Foss og kan legges til i ethvert .NET 8+ prosjekt med en enkelt kommando:

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

Det primære navnerommet er Aspose.Pdf, med relaterte navnerom inkludert Aspose.Pdf.Text, Aspose.Pdf.Forms og Aspose.Pdf.Facades. Biblioteket eksponerer 805 offentlige API‑klasser støttet av 7 488 dokumenterte påstander og 100 kodeeksempler hentet direkte fra testsettet.

Kjernefunksjoner

API-et dekker hele livssyklusen til et PDF-dokument:

  • Dokumentopprettelse og lastingDocument.Create() genererer et tomt dokument; Document.Open(data) laster en eksisterende PDF fra en byte‑array eller strøm.
  • Side- og innholds‑tilgangPages‑samlingen gir 1‑basert indeksert tilgang til individuelle sider, hvor hver side eksponerer annotasjoner, operatorer og innholdsstrømmer.
  • TekstuttrekkingTextFragmentAbsorber besøker en side og samler inn hvert tekstfragment, med valgfri filtrering av søkefraser og støtte for regulære uttrykk.
  • Interaktive handlingerPdfAction.CreateUri, PdfAction.CreateGoTo, PdfAction.CreateJavaScript og PdfAction.CreateLaunch dekker de standard PDF‑handlings­typene.
  • AnnotasjonerAnnotationCollection.AddLinkAnnotation legger ved en lenke‑annotasjon med en tilknyttet handling til ethvert rektangulært område på en side.
  • SkjemaerAspose.Pdf.Forms‑navnerommet og Aspose.Pdf.Facades gir tilgang til AcroForm‑felter, utseende‑formatering og feltnivå‑JavaScript‑utvidelser.

Åpne et dokument og legge til en lenke

Følgende eksempel demonstrerer rundtur‑mønsteret: opprett et nytt PDF‑dokument, legg til en URI‑handlingslenke‑annotasjon på den første siden, lagre til en strøm, og last inn på nytt for å verifisere at annotasjonen vedvarer.

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

Den Document.Open statiske metoden godtar en byte[] eller en strøm. doc.Pages[1] får tilgang til den første siden ved 1‑basert indeks — samme indekskonvensjon som brukes gjennom hele biblioteket. Etter lagring til en MemoryStream, kan dokumentet lastes inn på nytt og alle annotasjoner bevares.


Søke tekst på en side

TextFragmentAbsorber gir nøkkelordssøk over innholdstrømmen til enhver side. Send inn en søkefrase til konstruktøren for å begrense resultatene, eller bruk overloaden uten argumenter for å samle alle fragmenter:

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

Hver TextFragment i den resulterende samlingen eksponerer egenskaper inkludert Text, FontSize, og posisjonsdata, noe som gjør det enkelt å bygge søke‑, uthevings‑ eller redigeringsarbeidsflyter på toppen av de ekstraherte fragmentene.


MIT License og åpen utvikling

All kildekode er publisert på GitHub og distribuert under MIT‑lisensen. Det er ingen evalueringsvannmerke, ingen bruksgrense, og ingen separat lisensfil å håndtere. Document.IsLicensed‑egenskapen returnerer alltid true i FOSS‑byggingen.

Pakken er for øyeblikket på versjon 0.1.0-alpha, som reflekterer aktiv utvikling. API‑overflaten er allerede betydelig — 805 klasser, 7 488 krav — og alfa‑betegnelsen signaliserer at API‑signaturer kan endres før 1.0‑utgivelsen.


Kom i gang

Relaterte ressurser