Introducción
Aspose.Words FOSS para .NET ya está disponible: una biblioteca .NET gratuita y de código abierto para crear, leer y editar documentos Word en puro C#, sin necesidad de instalar Microsoft Word. Está dirigida a desarrolladores que necesitan generar informes y cartas a partir de plantillas, leer y reestructurar contenido de archivos .docx existentes, o convertir documentos Word a Markdown o texto plano como parte de una cadena de procesamiento, sin licenciar un SDK comercial para hacerlo.
La biblioteca se publica bajo la licencia MIT y no tiene dependencias nativas — todo se ejecuta en código administrado. Está dirigida a .NET Standard 2.0, por lo que funciona en .NET Framework 4.6.2+ y .NET 6, 8 y 10, en Windows, Linux y macOS. Instálela a través de NuGet, o compile la biblioteca desde el código fuente con un único comando dotnet build (ver Inicio rápido a continuación).
Lo que diferencia a esto de una típica nueva biblioteca de documentos de código abierto es que no es una reescritura ni un envoltorio. Aspose.Words FOSS para .NET es la auténtica base de código Aspose.Words — el mismo motor de documentos que ha procesado archivos Word en producción desde 2003, reducido a un núcleo gratuito bajo licencia MIT. Los desarrolladores que superen esta edición y necesiten maquetación de páginas, renderizado o los convertidores de formato adicionales pueden pasar a la versión comercial Aspose.Words para .NET sin reescribir su código, ya que es el mismo API subyacente.
Características clave
Creación y edición de documentos
Cree documentos desde cero con new Document() y el DocumentBuilder de alto nivel, o abra archivos .docx existentes con new Document(fileName). DocumentBuilder ofrece métodos de autoría secuenciales como Write(), Writeln(), InsertParagraph() e InsertBreak(), junto con propiedades de formato (Font, ParagraphFormat, PageSetup) que se aplican al contenido a medida que se inserta. Para acceso de bajo nivel, recorra el árbol del documento directamente a través de los nodos Section, Paragraph, Run y Table, o cree una subclase de DocumentVisitor para procesar cada tipo de nodo en una sola pasada.
Tablas y Listas
Las tablas se construyen a partir de los nodos Table, Row y Cell. Table.SetBorders(), Table.SetShading() y Table.AutoFit() formatean toda la tabla de una vez, mientras que Table.Rows y el acceso a Cell por fila brindan un control más fino. Las listas numeradas y con viñetas se gestionan mediante ListCollection y ListFormat: aplique un estilo incorporado con ListFormat.ApplyBulletDefault() o ApplyNumberDefault(), o registre una definición de lista personalizada con ListCollection.Add().
Control de cambios y protección de documentos
Llame a Document.StartTrackRevisions() antes de editar para registrar inserciones, eliminaciones y cambios de formato, luego inspeccione, acepte o rechace mediante RevisionCollection (AcceptAll(), RejectAll(), Accept(criteria), Reject(criteria)), o acepte todo de una vez con Document.AcceptAllRevisions(). Document.Protect() aplica protección con contraseña o imposición de solo lectura usando el enumerado DocumentSecurity (ReadOnlyEnforced, ReadOnlyRecommended, PasswordProtected y valores relacionados), y Document.Unprotect() lo revierte.
Campos, macros y firmas digitales
El motor de evaluación de campos actualiza campos como FieldDate (el campo DATE) y FieldDocProperty (el campo DOCPROPERTY) in situ mediante Document.UpdateFields() — los campos que dependen del diseño de página, como los números de página, se evalúan a valores de marcador de posición ya que el diseño de página no forma parte de esta edición. Los archivos DOCM y DOTM conservan sus proyectos VBA intactos. Las firmas digitales existentes pueden inspeccionarse a través de DigitalSignatureCollection y DigitalSignature (IsValid, SubjectName, IssuerName, SignTime) para confirmar si un documento está firmado y no ha sido manipulado; crear nuevas firmas no forma parte de esta edición.
Gráficos
Inserte un gráfico en un documento con DocumentBuilder.InsertChart(), luego configure sus series de datos mediante el objeto Chart devuelto.
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");
Inicio rápido
Aspose.Words FOSS para .NET está disponible a través de NuGet:
dotnet add package Aspose.Words.FOSSPara compilar desde el código fuente, en su lugar:
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
Luego añada una referencia de proyecto a Aspose.Words.csproj desde su aplicación. Con la referencia en su lugar, cree un documento con un gráfico y guárdelo en 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");
Formatos compatibles
| Formato | Extensión | Leer | Escribir |
|---|---|---|---|
| DOCX | .docx | ✓ | ✓ |
| DOCM | .docm | ✓ | ✓ |
| DOTX | .dotx | ✓ | ✓ |
| DOTM | .dotm | ✓ | ✓ |
| Flat OPC (todas las variantes) | (varios) | ✓ | ✓ |
| Markdown | .md | ✓ | ✓ |
| Text | .txt | ✓ | ✓ |
Esta edición excluye intencionalmente el diseño de página y la renderización — no hay exportación a PDF, XPS o imágenes, ni impresión, lo que también significa que los valores de campo dependientes del diseño, como los números de página, se evalúan como marcadores de posición en lugar de calcularse. Los convertidores de formato adicionales (DOC, RTF, ODT, HTML, EPUB, MHTML, MOBI, AZW3 y WordML) no se leen ni se escriben, y la ejecución de combinación de correspondencia, LINQ Reporting, comparación de documentos, creación de nuevas firmas digitales y la subconfiguración de fuentes incrustadas no están incluidos. Estos son los mismos subsistemas eliminados del código base comercial para mantener esta edición gratuita.
Código abierto y licencias
Aspose.Words FOSS para .NET se publica bajo la licencia MIT, gratuito tanto para uso comercial como personal sin regalías ni restricciones de redistribución. El código fuente completo está disponible en GitHub en el Aspose.Words FOSS para .NET repositorio.