Introduction

Aspose.Words FOSS for .NET est maintenant disponible : une bibliothèque .NET gratuite et open source pour créer, lire et modifier des documents Word en pur C#, sans nécessiter l’installation de Microsoft Word. Elle s’adresse aux développeurs qui doivent générer des rapports et des lettres à partir de modèles, lire et restructurer le contenu de fichiers .docx existants, ou convertir des documents Word en Markdown ou en texte brut dans le cadre d’un pipeline de traitement, sans devoir acquérir un SDK commercial pour cela.

La bibliothèque est publiée sous licence MIT et n’a aucune dépendance native — tout s’exécute en code géré. Elle cible .NET Standard 2.0, donc elle fonctionne sur .NET Framework 4.6.2+ et .NET 6, 8 et 10, sur Windows, Linux et macOS. Installez‑la via NuGet, ou construisez la bibliothèque à partir du code source avec une seule commande dotnet build (voir Quick Start ci‑dessous).

Ce qui distingue cela d’une bibliothèque de documents open source typique, c’est qu’il ne s’agit ni d’une réécriture ni d’un wrapper. Aspose.Words FOSS for .NET est le véritable code source Aspose.Words — le même moteur de documents qui traite les fichiers Word en production depuis 2003 — réduit à un cœur gratuit sous licence MIT. Les développeurs qui dépassent cette édition et qui ont besoin de mise en page, de rendu ou des convertisseurs de formats supplémentaires peuvent passer à la version commerciale Aspose.Words pour .NET sans réécrire leur code, car il s’agit du même API sous‑jacent.


Fonctionnalités clés

Création et édition de documents

Créez des documents à partir de zéro avec new Document() et le DocumentBuilder de haut niveau, ou ouvrez des fichiers .docx existants avec new Document(fileName). DocumentBuilder fournit des méthodes d’écriture séquentielles telles que Write(), Writeln(), InsertParagraph() et InsertBreak(), ainsi que des propriétés de mise en forme (Font, ParagraphFormat, PageSetup) qui s’appliquent au contenu lors de son insertion. Pour un accès de bas niveau, parcourez l’arborescence du document directement via les nœuds Section, Paragraph, Run et Table, ou sous‑classez DocumentVisitor afin de traiter chaque type de nœud en un seul passage.

Tableaux et listes

Les tables sont construites à partir des nœuds Table, Row et Cell. Table.SetBorders(), Table.SetShading() et Table.AutoFit() formatent une table entière en une fois, tandis que Table.Rows et l’accès aux Cell ligne par ligne offrent un contrôle plus fin. Les listes numérotées et à puces passent par ListCollection et ListFormat : appliquez un style intégré avec ListFormat.ApplyBulletDefault() ou ApplyNumberDefault(), ou enregistrez une définition de liste personnalisée avec ListCollection.Add().

Suivi des modifications et protection du document

Appelez Document.StartTrackRevisions() avant de modifier pour enregistrer les insertions, suppressions et modifications de mise en forme, puis inspectez, acceptez ou rejetez‑les via RevisionCollection (AcceptAll(), RejectAll(), Accept(criteria), Reject(criteria)), ou acceptez tout d’un coup avec Document.AcceptAllRevisions(). Document.Protect() applique une protection par mot de passe ou une enforcement en lecture seule en utilisant l’énumération DocumentSecurity (ReadOnlyEnforced, ReadOnlyRecommended, PasswordProtected, et les valeurs associées), et Document.Unprotect() l’inverse.

Champs, macros et signatures numériques

Le moteur d’évaluation des champs met à jour les champs tels que FieldDate (le champ DATE) et FieldDocProperty (le champ DOCPROPERTY) en place via Document.UpdateFields() — les champs qui dépendent de la mise en page, comme les numéros de page, sont évalués à des valeurs fictives puisque la mise en page ne fait pas partie de cette édition. Les fichiers DOCM et DOTM sont conservés avec leurs projets VBA intacts. Les signatures numériques existantes peuvent être inspectées via DigitalSignatureCollection et DigitalSignature (IsValid, SubjectName, IssuerName, SignTime) pour confirmer si un document est signé et n’a pas été altéré ; la création de nouvelles signatures ne fait pas partie de cette édition.

Graphiques

Insérez un graphique dans un document avec DocumentBuilder.InsertChart(), puis configurez ses séries de données via l’objet Chart retourné.

using Aspose.Words;
using Aspose.Words.Drawing.Charts;

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;

// Delete default generated series.
chart.Series.Clear();

string[] categories = new string[] { "AW Category 1", "AW Category 2", "AW Category 3" };
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });

doc.Save("chart.docx");

Démarrage rapide

Aspose.Words FOSS pour .NET est disponible via NuGet:

dotnet add package Aspose.Words.FOSS

Pour compiler à partir du code source à la place :

git clone https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git
cd Aspose.Words-FOSS-for-.NET
dotnet build Aspose.Words.sln -c Release

Ajoutez ensuite une référence de projet à Aspose.Words.csproj depuis votre application. Une fois la référence en place, créez un document avec un graphique et enregistrez‑le au format DOCX:

using Aspose.Words;
using Aspose.Words.Drawing.Charts;

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;

// Delete default generated series.
chart.Series.Clear();

string[] categories = new string[] { "AW Category 1", "AW Category 2", "AW Category 3" };
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });

doc.Save("chart.docx");
Console.WriteLine("Saved chart.docx");

Formats pris en charge

FormatExtensionLireÉcrire
DOCX.docx
DOCM.docm
DOTX.dotx
DOTM.dotm
Flat OPC (toutes les variantes)(divers)
Markdown.md
Text.txt

Cette édition exclut intentionnellement la mise en page et le rendu — aucun PDF, XPS ou export d’image, et aucune impression, ce qui signifie également que les valeurs de champs dépendant de la mise en page, comme les numéros de page, sont évaluées comme des espaces réservés plutôt que calculées. Les convertisseurs de formats supplémentaires (DOC, RTF, ODT, HTML, EPUB, MHTML, MOBI, AZW3 et WordML) ne sont ni lus ni écrits, et l’exécution du publipostage, le reporting LINQ, la comparaison de documents, la création de nouvelles signatures numériques et le sous‑ensemble de polices intégrées ne sont pas inclus. Ce sont les mêmes sous‑systèmes retirés du code commercial afin de rendre cette édition gratuite.


Open Source & Licence

Aspose.Words FOSS pour .NET est publié sous la licence MIT, gratuit pour une utilisation commerciale et personnelle sans redevances ni restrictions de redistribution. Le code source complet est disponible sur GitHub dans le Aspose.Words FOSS pour le dépôt .NET.


Premiers pas

Ressources associées