Introduzione

Aspose.Words FOSS per .NET è ora disponibile: una libreria .NET gratuita e open-source per creare, leggere e modificare documenti Word in puro C#, senza necessità di installare Microsoft Word. È destinata agli sviluppatori che devono generare report e lettere da modelli, leggere e ristrutturare contenuti da file .docx esistenti, o convertire documenti Word in Markdown o testo semplice come parte di una pipeline di elaborazione, senza dover acquistare una SDK commerciale per farlo.

La libreria è rilasciata sotto licenza MIT e non ha dipendenze native — tutto gira in codice gestito. Mira a .NET Standard 2.0, quindi funziona su .NET Framework 4.6.2+ e .NET 6, 8 e 10, su Windows, Linux e macOS. Installala tramite NuGet, oppure compila la libreria dal sorgente con un unico comando dotnet build (vedi Quick Start di seguito).

Ciò che distingue questo prodotto da una tipica nuova libreria documentale open-source è che non è una riscrittura o un wrapper. Aspose.Words FOSS per .NET è il vero codice sorgente Aspose.Words — lo stesso motore di documenti che elabora documenti Word in produzione dal 2003 — ridotto a un core gratuito con licenza MIT. Gli sviluppatori che superano questa edizione e hanno bisogno di layout di pagina, rendering o dei convertitori di formato aggiuntivi possono passare alla versione commerciale Aspose.Words per .NET senza riscrivere il loro codice, poiché è lo stesso API sottostante.


Caratteristiche principali

Creazione e modifica di documenti

Crea documenti da zero con new Document() e l’DocumentBuilder di alto livello, oppure apri file .docx esistenti con new Document(fileName). DocumentBuilder fornisce metodi di authoring sequenziali come Write(), Writeln(), InsertParagraph() e InsertBreak(), insieme a proprietà di formattazione (Font, ParagraphFormat, PageSetup) che si applicano al contenuto al momento dell’inserimento. Per un accesso a livello più basso, percorri l’albero del documento direttamente tramite i nodi Section, Paragraph, Run e Table, o estendi DocumentVisitor per processare ogni tipo di nodo in un unico passaggio.

Tabelle e elenchi

Le tabelle sono costruite dai nodi Table, Row e Cell. Table.SetBorders(), Table.SetShading() e Table.AutoFit() formattano un’intera tabella in una volta, mentre Table.Rows e l’accesso Cell per riga offrono un controllo più fine. Gli elenchi numerati e puntati passano attraverso ListCollection e ListFormat: applica uno stile predefinito con ListFormat.ApplyBulletDefault() o ApplyNumberDefault(), oppure registra una definizione di elenco personalizzata con ListCollection.Add().

Modifiche tracciate e protezione del documento

Chiama Document.StartTrackRevisions() prima di modificare per registrare inserimenti, eliminazioni e modifiche di formattazione, quindi ispeziona, accetta o rifiuta tramite RevisionCollection (AcceptAll(), RejectAll(), Accept(criteria), Reject(criteria)), oppure accetta tutto in una volta con Document.AcceptAllRevisions(). Document.Protect() applica la protezione con password o l’applicazione di sola lettura utilizzando l’enumerazione DocumentSecurity (ReadOnlyEnforced, ReadOnlyRecommended, PasswordProtected e valori correlati), e Document.Unprotect() la revoca.

Campi, macro e firme digitali

Il motore di valutazione dei campi aggiorna i campi come FieldDate (il campo DATE) e FieldDocProperty (il campo DOCPROPERTY) in loco tramite Document.UpdateFields() — i campi che dipendono dal layout di pagina, come i numeri di pagina, vengono valutati a valori segnaposto poiché il layout di pagina non fa parte di questa edizione. I file DOCM e DOTM mantengono intatti i loro progetti VBA durante il round‑trip. Le firme digitali esistenti possono essere ispezionate tramite DigitalSignatureCollection e DigitalSignature (IsValid, SubjectName, IssuerName, SignTime) per confermare se un documento è firmato e non è stato manomesso; la creazione di nuove firme non fa parte di questa edizione.

Grafici

Inserisci un grafico in un documento con DocumentBuilder.InsertChart(), quindi configura le sue serie di dati tramite l’oggetto Chart restituito.

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

Guida rapida

Aspose.Words FOSS per .NET è disponibile tramite NuGet:

dotnet add package Aspose.Words.FOSS

Per compilare dal codice sorgente invece:

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

Quindi aggiungi un riferimento di progetto a Aspose.Words.csproj dalla tua applicazione. Con il riferimento in posizione, crea un documento con un grafico e salvalo in 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");

Formati supportati

FormatoEstensioneLeggiScrivi
DOCX.docx
DOCM.docm
DOTX.dotx
DOTM.dotm
Flat OPC (tutte le varianti)(vari)
Markdown.md
Text.txt

Questa edizione esclude intenzionalmente il layout di pagina e il rendering — nessun PDF, XPS o esportazione di immagini, e nessuna stampa, il che significa anche che i valori dei campi dipendenti dal layout, come i numeri di pagina, vengono valutati come segnaposti anziché calcolati. I convertitori di formato aggiuntivi (DOC, RTF, ODT, HTML, EPUB, MHTML, MOBI, AZW3 e WordML) non sono letti né scritti, e l’esecuzione del mail merge, LINQ Reporting, il confronto dei documenti, la creazione di nuove firme digitali e il subset dei caratteri incorporati non sono inclusi. Questi sono gli stessi sottosistemi rimossi dal codice commerciale per mantenere questa edizione gratuita.


Open Source & Licenze

Aspose.Words FOSS per .NET è rilasciato sotto la licenza MIT, gratuito sia per uso commerciale sia per uso personale senza royalty o restrizioni di ridistribuzione. Il codice sorgente completo è disponibile su GitHub in the Aspose.Words FOSS per il repository .NET.


Guida introduttiva

Risorse correlate