Aspose.PDF FOSS för .NET är ett gratis, MIT-licensierat .NET-bibliotek för att läsa, skapa och manipulera PDF-dokument. Utgivet under en tillåtande öppen källkodslicens tar det bort det traditionella hindret för företagsklassade PDF-funktioner — varje funktion i biblioteket är tillgänglig utan att köpa en kommersiell licens.
Vad är Aspose.PDF FOSS för .NET?
Biblioteket riktar sig mot .NET 8 och senare. Det publiceras på NuGet under paket‑ID Aspose.Pdf.Foss och kan läggas till i vilket .NET 8+ projekt som helst med ett enda kommando:
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha
Den primära namnrymden är Aspose.Pdf, med relaterade namnrymder inklusive Aspose.Pdf.Text, Aspose.Pdf.Forms och Aspose.Pdf.Facades. Biblioteket exponerar 805 offentliga API-klasser som stöds av 7,488 dokumenterade påståenden och 100 kodsnuttar som extraherats direkt från testsviten.
Kärnkompetenser
API:et täcker hela livscykeln för ett PDF-dokument:
- Dokumentskapande och inläsning —
Document.Create()skapar ett tomt dokument;Document.Open(data)läser in en befintlig PDF från en byte‑array eller ström. - Sid- och innehållsåtkomst —
Pages‑samlingen ger 1‑baserad indexerad åtkomst till enskilda sidor, där varje sida exponerar annotationer, operatorer och innehållsströmmar. - Textutdrag —
TextFragmentAbsorberbesöker en sida och samlar varje textfragment, med valfri filtrering efter sökfras och stöd för reguljära uttryck. - Interaktiva åtgärder —
PdfAction.CreateUri,PdfAction.CreateGoTo,PdfAction.CreateJavaScriptochPdfAction.CreateLaunchtäcker de standard PDF‑åtgärdstyperna. - Annotationer —
AnnotationCollection.AddLinkAnnotationbifogar en länkanotation med en associerad åtgärd till valfri rektangulär region på en sida. - Formulär —
Aspose.Pdf.Forms‑namnutrymmet ochAspose.Pdf.Facadesger åtkomst till AcroForm‑fält, utseendeformatering och fält‑nivå JavaScript‑tillägg.
Öppna ett dokument och lägga till en länk
Följande exempel demonstrerar round‑trip‑mönstret: skapa ett nytt PDF‑dokument, lägg till en URI‑åtgärdslänkanotering på den första sidan, spara till en ström och ladda om för att verifiera att noteringen kvarstår.
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 statiska metoden accepterar en byte[] eller en ström. doc.Pages[1] får åtkomst till den första sidan med ett 1-baserat index — samma indexkonvention som används i hela biblioteket. Efter att ha sparat till en MemoryStream kan dokumentet laddas om och alla annotationer bevaras.
Söka text på en sida
TextFragmentAbsorber tillhandahåller nyckelordsökning i innehållsströmmen för vilken sida som helst. Skicka en sökfras till konstruktorn för att begränsa resultaten, eller använd överlagringen utan argument för att samla alla fragment:
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}");
}
Varje TextFragment i den resulterande samlingen exponerar egenskaper inklusive Text, FontSize och positionsdata, vilket gör det enkelt att bygga sök‑, markerings‑ eller raderingsarbetsflöden ovanpå de extraherade fragmenten.
MIT-licens och öppen utveckling
All källkod publiceras på GitHub och distribueras under MIT-licensen. Det finns ingen utvärderingsvattenstämpel, ingen användningsgräns och ingen separat licensfil att hantera. Egenskapen Document.IsLicensed returnerar alltid true i FOSS-bygget.
Paketet är för närvarande på version 0.1.0-alpha, vilket speglar aktiv utveckling. API-ytan är redan betydande — 805 klasser, 7 488 påståenden — och alpha‑beteckningen signalerar att API‑signaturer kan förändras innan 1.0‑utgåvan.