Aspose.PDF FOSS for .NET est une bibliothèque .NET gratuite, sous licence MIT, pour lire, créer et manipuler des documents PDF. Publiée sous une licence open‑source permissive, elle supprime la barrière traditionnelle aux capacités PDF de niveau entreprise — chaque fonctionnalité de la bibliothèque est disponible sans achat de licence commerciale.
Qu’est‑ce que Aspose.PDF FOSS pour .NET ?
La bibliothèque cible .NET 8 et versions ultérieures. Elle est publiée sur NuGet sous l’ID de package Aspose.Pdf.Foss et peut être ajoutée à tout projet .NET 8+ avec une seule commande :
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha
L’espace de noms principal est Aspose.Pdf, avec les espaces de noms associés Aspose.Pdf.Text, Aspose.Pdf.Forms et Aspose.Pdf.Facades. La bibliothèque expose 805 classes publiques API soutenues par 7 488 revendications documentées et 100 extraits de code extraits directement de la suite de tests.
Fonctionnalités principales
L’API couvre l’ensemble du cycle de vie d’un document PDF :
- Création et chargement de documents —
Document.Create()crée un document vierge ;Document.Open(data)charge un PDF existant à partir d’un tableau d’octets ou d’un flux. - Accès aux pages et au contenu — la collection
Pagesoffre un accès indexé à partir de 1 aux pages individuelles, chacune exposant les annotations, les opérateurs et les flux de contenu. - Extraction de texte —
TextFragmentAbsorberparcourt une page et collecte chaque fragment de texte, avec un filtrage optionnel par phrase de recherche et la prise en charge des expressions régulières. - Actions interactives —
PdfAction.CreateUri,PdfAction.CreateGoTo,PdfAction.CreateJavaScriptetPdfAction.CreateLaunchcouvrent les types d’actions PDF standard. - Annotations —
AnnotationCollection.AddLinkAnnotationattache une annotation de lien avec une action associée à n’importe quelle région rectangulaire d’une page. - Formulaires — l’espace de noms
Aspose.Pdf.FormsetAspose.Pdf.Facadesoffrent un accès aux champs AcroForm, au formatage d’apparence et aux extensions JavaScript au niveau des champs.
Ouverture d’un Document et Ajout d’un Lien
L’exemple suivant illustre le modèle round‑trip : créer un nouveau document PDF, ajouter une annotation de lien d’action URI à la première page, enregistrer dans un flux, puis recharger pour vérifier que l’annotation persiste.
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
La méthode statique Document.Open accepte un byte[] ou un flux. doc.Pages[1] accède à la première page par indice basé sur 1 — la même convention d’indexation utilisée dans toute la bibliothèque. Après avoir enregistré dans un MemoryStream, le document peut être rechargé et toutes les annotations sont conservées.
Recherche de texte sur une page
TextFragmentAbsorber fournit une recherche par mot‑clé sur le flux de contenu de n’importe quelle page. Passez une phrase de recherche au constructeur pour restreindre les résultats, ou utilisez la surcharge sans argument pour collecter tous les fragments :
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}");
}
Chaque TextFragment de la collection résultante expose des propriétés incluant Text, FontSize et des données de position, ce qui rend simple la création de flux de travail de recherche, de mise en évidence ou de rédaction au-dessus des fragments extraits.
Licence MIT et développement ouvert
Tout le code source est publié sur GitHub et distribué sous la licence MIT. Il n’y a pas de filigrane d’évaluation, pas de limite d’utilisation, et aucun fichier de licence séparé à gérer. La propriété Document.IsLicensed renvoie toujours true dans la version FOSS.
Le package est actuellement à la version 0.1.0-alpha, reflétant un développement actif. La surface de l’API est déjà substantielle — 805 classes, 7 488 revendications — et la désignation alpha indique que les signatures de l’API peuvent évoluer avant la version 1.0.