Saltar al pie de página
USANDO IRONWORD

API de Word .NET (Cómo Funciona para Desarrolladores)

La API .NET Word proporciona a los desarrolladores herramientas robustas para convertir documentos Word, y para interactuar y manipular documentos MS Word dentro de sus aplicaciones. Esta API está diseñada para agilizar el proceso de trabajo con documentos de Microsoft Word, facilitando la creación, edición, conversión y gestión de documentos de manera programática. En este artículo, exploraremos IronWord para entender sus capacidades en la manipulación de documentos Word.

Introducción a IronWord

IronWord es una biblioteca .NET Word dentro del ecosistema API .NET Word, diseñada específicamente para desarrolladores que procesan documentos de Microsoft Word en sus aplicaciones .NET. Con IronWord, los desarrolladores pueden leer, escribir y modificar documentos Word fácilmente sin necesitar Microsoft Word instalado en las máquinas servidor o cliente. Esta capacidad es particularmente beneficiosa para aplicaciones que necesitan automatizar tareas de procesamiento de documentos, como la generación de informes, facturas o correspondencia personalizada mediante funciones de combinación de correo.

Características de IronWord

IronWord proporciona una amplia gama de funciones que atienden varios aspectos de la manipulación de documentos Word. Exploremos cada conjunto de características, centrando en cómo habilitan la manipulación y combinación de múltiples documentos, categorizadas bajo 'Estructura del Documento' y 'Elementos del Documento'.

Estructura del documento

Leer y Editar Word: Con IronWord, puedes extraer información específica de tus documentos Word, como extraer texto para editar, reutilizar y recuperar imágenes que pueden necesitarse en otros lugares. Esta capacidad es vital para aplicaciones orientadas a la combinación de documentos Word y al procesamiento de la información contenida en archivos DOCX existentes.

Varios Formatos: IronWord admite una amplia gama de formatos de archivo, mejorando su utilidad en la conversión de documentos Word dentro de aplicaciones .NET.

Editar Configuración de Página: Diseñar la disposición física de tus documentos Word es sencillo con IronWord. Puedes ajustar el tamaño del papel para varios archivos MS Word a dimensiones estándar o personalizadas, cambiar la orientación para diferentes secciones de tu documento, establecer márgenes para asegurar una alineación adecuada e incluso modificar el color de fondo para propósitos estéticos o para resaltar secciones.

Agregar Párrafos: IronWord permite la adición y eliminación de fragmentos de texto dentro de los párrafos, lo cual es esencial para editar y dar formato a grandes secciones de texto. Además, puedes mejorar tus párrafos insertando imágenes y formas directamente en el texto, ajustando el estilo para que coincida con tus especificaciones de diseño y configurando alineaciones para un acabado pulido. La capacidad de agregar viñetas y listas numeradas también ayuda a organizar el contenido de manera más efectiva.

using IronWord;
using IronWord.Models;

class Program
{
    static void Main()
    {
        // Load docx
        WordDocument doc = new WordDocument();
        // Create and add styled text to a paragraph
        Paragraph paragraph = new Paragraph();

        // Adding regular text
        paragraph.AddTextRun(new TextRun("Exploring text styles within a document."));

        // Adding italic text
        paragraph.AddTextRun(new TextRun("An example in italic.", new TextStyle { IsItalic = true }));

        // Adding bold text
        paragraph.AddTextRun(new TextRun("An example in bold.", new TextStyle { IsBold = true }));

        // Add paragraph to the document and export docx
        doc.AddParagraph(paragraph);
        doc.SaveAs("newdocument.docx");
    }
}
using IronWord;
using IronWord.Models;

class Program
{
    static void Main()
    {
        // Load docx
        WordDocument doc = new WordDocument();
        // Create and add styled text to a paragraph
        Paragraph paragraph = new Paragraph();

        // Adding regular text
        paragraph.AddTextRun(new TextRun("Exploring text styles within a document."));

        // Adding italic text
        paragraph.AddTextRun(new TextRun("An example in italic.", new TextStyle { IsItalic = true }));

        // Adding bold text
        paragraph.AddTextRun(new TextRun("An example in bold.", new TextStyle { IsBold = true }));

        // Add paragraph to the document and export docx
        doc.AddParagraph(paragraph);
        doc.SaveAs("newdocument.docx");
    }
}
Imports IronWord
Imports IronWord.Models

Friend Class Program
	Shared Sub Main()
		' Load docx
		Dim doc As New WordDocument()
		' Create and add styled text to a paragraph
		Dim paragraph As New Paragraph()

		' Adding regular text
		paragraph.AddTextRun(New TextRun("Exploring text styles within a document."))

		' Adding italic text
		paragraph.AddTextRun(New TextRun("An example in italic.", New TextStyle With {.IsItalic = True}))

		' Adding bold text
		paragraph.AddTextRun(New TextRun("An example in bold.", New TextStyle With {.IsBold = True}))

		' Add paragraph to the document and export docx
		doc.AddParagraph(paragraph)
		doc.SaveAs("newdocument.docx")
	End Sub
End Class
$vbLabelText   $csharpLabel

Agregar Tablas: Las tablas son un componente crítico de los archivos DOCX y son fácilmente manipulables con IronWord, soportando la generación dinámica de documentos. Puedes agregar o eliminar filas y columnas, una operación fundamental para la generación dinámica de documentos donde la cantidad de datos puede variar. Combinar y dividir celdas te da la versatilidad para formatear tablas complejas, y personalizar bordes y dimensiones de diseño permite un aspecto pulido y profesional.

using IronWord;
using IronWord.Models;

class Program
{
    static void Main()
    {
        // Create a table cell with a paragraph containing text
        TableCell cell = new TableCell(new Paragraph(new TextRun("Sample text")));

        // Configure a common border style for the table
        BorderStyle borderStyle = new BorderStyle
        {
            BorderColor = new IronColor(IronSoftware.Drawing.Color.Black),
            BorderValue = IronWord.Models.Enums.BorderValues.Thick,
            BorderSize = 5
        };

        // Apply the border style to the cell
        cell.Borders = new TableBorders
        {
            TopBorder = borderStyle,
            RightBorder = borderStyle,
            BottomBorder = borderStyle,
            LeftBorder = borderStyle
        };

        // Create a table row and add the same cell twice
        TableRow row = new TableRow();
        row.AddCell(cell);
        row.AddCell(cell);

        // Create a table, add the row, then create and export the Word document
        Table table = new Table();
        table.AddRow(row);
        WordDocument doc = new WordDocument(table);
        doc.SaveAs("Document.docx");
    }
}
using IronWord;
using IronWord.Models;

class Program
{
    static void Main()
    {
        // Create a table cell with a paragraph containing text
        TableCell cell = new TableCell(new Paragraph(new TextRun("Sample text")));

        // Configure a common border style for the table
        BorderStyle borderStyle = new BorderStyle
        {
            BorderColor = new IronColor(IronSoftware.Drawing.Color.Black),
            BorderValue = IronWord.Models.Enums.BorderValues.Thick,
            BorderSize = 5
        };

        // Apply the border style to the cell
        cell.Borders = new TableBorders
        {
            TopBorder = borderStyle,
            RightBorder = borderStyle,
            BottomBorder = borderStyle,
            LeftBorder = borderStyle
        };

        // Create a table row and add the same cell twice
        TableRow row = new TableRow();
        row.AddCell(cell);
        row.AddCell(cell);

        // Create a table, add the row, then create and export the Word document
        Table table = new Table();
        table.AddRow(row);
        WordDocument doc = new WordDocument(table);
        doc.SaveAs("Document.docx");
    }
}
Imports IronWord
Imports IronWord.Models

Friend Class Program
	Shared Sub Main()
		' Create a table cell with a paragraph containing text
		Dim cell As New TableCell(New Paragraph(New TextRun("Sample text")))

		' Configure a common border style for the table
		Dim borderStyle As New BorderStyle With {
			.BorderColor = New IronColor(IronSoftware.Drawing.Color.Black),
			.BorderValue = IronWord.Models.Enums.BorderValues.Thick,
			.BorderSize = 5
		}

		' Apply the border style to the cell
		cell.Borders = New TableBorders With {
			.TopBorder = borderStyle,
			.RightBorder = borderStyle,
			.BottomBorder = borderStyle,
			.LeftBorder = borderStyle
		}

		' Create a table row and add the same cell twice
		Dim row As New TableRow()
		row.AddCell(cell)
		row.AddCell(cell)

		' Create a table, add the row, then create and export the Word document
		Dim table As New Table()
		table.AddRow(row)
		Dim doc As New WordDocument(table)
		doc.SaveAs("Document.docx")
	End Sub
End Class
$vbLabelText   $csharpLabel

API .NET Word (Cómo Funciona para los Desarrolladores): Figura 1 - PDF Salida con una tabla

Elementos del documento

Agregar TextRuns: Esta función se enfoca en el control detallado sobre el contenido del texto. Puedes agregar, adjuntar y dividir fragmentos de texto, lo cual es vital para la creación dinámica de documentos. Las opciones de estilo son extensas, incluyendo cambio de familias de fuentes, tamaños y colores, así como añadir negritas, itálicas y otras decoraciones de texto. También puedes incrustar imágenes dentro de fragmentos de texto, creando un documento rico y visualmente atractivo.

Agregar Imágenes: IronWord permite una manipulación de imágenes completa dentro de Documentos Word. Puedes cargar imágenes de diversas fuentes, ajustar el texto a su alrededor sin problemas, y ajustar sus dimensiones para que se adapten a tu diseño. La capacidad de establecer el desplazamiento de posición y la distancia desde las esquinas del documento asegura que tus imágenes siempre estarán perfectamente colocadas.

using IronWord;
using IronWord.Models;

class Program
{
    static void Main()
    {
        WordDocument doc = new WordDocument();

        // Load and configure the image
        IronWord.Models.Image image = new IronWord.Models.Image("your-image.jpg")
        {
            Width = 200, // In unit pixels
            Height = 200 // In unit pixels
        };

        // Create paragraph, add image, add paragraph to document, and export
        Paragraph paragraph = new Paragraph();
        paragraph.AddImage(image);

        // Add paragraph containing the image to the document
        doc.AddParagraph(paragraph);
        doc.SaveAs("save_document.docx");
    }
}
using IronWord;
using IronWord.Models;

class Program
{
    static void Main()
    {
        WordDocument doc = new WordDocument();

        // Load and configure the image
        IronWord.Models.Image image = new IronWord.Models.Image("your-image.jpg")
        {
            Width = 200, // In unit pixels
            Height = 200 // In unit pixels
        };

        // Create paragraph, add image, add paragraph to document, and export
        Paragraph paragraph = new Paragraph();
        paragraph.AddImage(image);

        // Add paragraph containing the image to the document
        doc.AddParagraph(paragraph);
        doc.SaveAs("save_document.docx");
    }
}
Imports IronWord
Imports IronWord.Models

Friend Class Program
	Shared Sub Main()
		Dim doc As New WordDocument()

		' Load and configure the image
		Dim image As New IronWord.Models.Image("your-image.jpg") With {
			.Width = 200,
			.Height = 200
		}

		' Create paragraph, add image, add paragraph to document, and export
		Dim paragraph As New Paragraph()
		paragraph.AddImage(image)

		' Add paragraph containing the image to the document
		doc.AddParagraph(paragraph)
		doc.SaveAs("save_document.docx")
	End Sub
End Class
$vbLabelText   $csharpLabel

Agregar Formas: Las formas pueden añadir un impacto visual significativo a un documento, y IronWord te brinda las herramientas para insertar y personalizarlas con precisión. Puedes establecer el tipo de forma (como rectángulos, círculos, flechas, etc.), determinar cómo debe ajustarse el texto alrededor de la forma, especificar dimensiones y posición exacta, e incluso rotar formas para lograr el efecto visual deseado.

Compatibilidad

Versiones de .NET y tipos de proyectos

API .NET Word (Cómo Funciona para los Desarrolladores): Figura 2 - Las versiones de .NET y tipos de proyecto con los que es compatible IronWord

IronWord está diseñado para una amplia compatibilidad dentro del ecosistema .NET, soportando C#, VB.NET y F# a través de diversas versiones de .NET, incluyendo .NET Core, .NET Standard y .NET Framework. Esto asegura su utilidad tanto en aplicaciones contemporáneas como en legado. La versatilidad de la biblioteca se extiende a los tipos de proyectos, acomodando aplicaciones web, móviles y de escritorio a través de la integración con Blazor, WebForms, Xamarin, MAUI, WPF y aplicaciones de consola.

Entornos de aplicaciones

API .NET Word (Cómo Funciona para los Desarrolladores): Figura 3 - Los entornos de aplicaciones en los que puede trabajar IronWord

En términos de entornos de aplicación, IronWord es adaptable a plataformas Windows, Linux, iOS y Android, incluyendo soporte específico para la contenedorización y despliegue en la nube en Docker, Azure y AWS. Este amplio soporte facilita el desarrollo en diferentes entornos.

SO e IDE

API .NET Word (Cómo Funciona para los Desarrolladores): Figura 4 - Los sistemas operativos y IDE con los que es compatible IronWord

IronWord también es compatible con los principales entornos de desarrollo integrados (IDEs) como Microsoft Visual Studio, ReSharper y Rider, ofreciendo a los desarrolladores flexibilidad en su elección de herramientas. Por último, soporta varios sistemas operativos y arquitecturas de procesador (x64, x86, ARM), asegurando un rendimiento eficiente a través de configuraciones de hardware diversas.

Opciones de licencia

API .NET Word (Cómo Funciona para los Desarrolladores): Figura 5 - Página de licencias de IronWord

IronWord ofrece diversas opciones de licencia para acomodar las necesidades de diferentes desarrolladores y organizaciones. Ofrecen una licencia perpetua, lo que significa que pagas una vez y no hay tarifas recurrentes. Cada licencia incluye un año de soporte y actualizaciones del producto. Los niveles de licencia están diseñados basándose en el número de desarrolladores, ubicaciones y proyectos que tienes. También puedes obtener una prueba gratuita para obtener experiencia práctica antes de comprar una licencia.

Licencia Lite

Esta opción está orientada a desarrolladores individuales que trabajan solo en un proyecto. Está valorada en $799 y cubre a un desarrollador en una sola ubicación.

Licencia Plus

Dirigida a pequeños equipos, esta licencia, por $plusLicense, acomoda hasta tres desarrolladores y es aplicable para su uso en tres ubicaciones en tres proyectos.

Licencia Profesional

Para equipos más grandes, la Licencia Profesional está valorada en $professionalLicense y soporta hasta diez desarrolladores. Está diseñada para satisfacer operaciones más amplias e incluye características de soporte premium.

Conclusión

En resumen, IronWord emerge como una API .NET Word robusta y flexible, ofreciendo una variedad de opciones de licencia para satisfacer las diversas necesidades de desarrolladores individuales y equipos. Sus características permiten una gestión eficiente y manipulación de documentos Word, asegurando la compatibilidad a través de múltiples versiones .NET y tipos de proyectos.

Preguntas Frecuentes

¿Cómo puedo manipular documentos de Word en .NET sin usar Office Interop?

Puedes usar IronWord, una biblioteca .NET Word que te permite manipular documentos de Word de manera programática sin requerir la instalación de Microsoft Word. Proporciona herramientas para crear, editar y convertir documentos de Word de manera eficiente.

¿Cuáles son las características clave del API .NET Word para el procesamiento de documentos?

El API .NET Word, específicamente IronWord, ofrece características como lectura y edición de documentos de Word, soporte para múltiples formatos de archivo, edición de configuraciones de página, y la adición de elementos como párrafos, tablas, ejecuciones de texto, imágenes y formas.

¿Cómo automatizar generación de informes y combinaciones en .NET?

IronWord es ideal para automatizar tareas como la generación de informes y la combinación de correspondencia en aplicaciones .NET. Te permite crear y editar documentos de Word de manera programática para optimizar estos procesos.

¿Qué plataformas son compatibles con el API .NET Word?

IronWord es compatible con una variedad de plataformas, incluyendo Windows, Linux, iOS y Android. También es compatible con implementaciones en la nube en Docker, Azure y AWS, lo que lo hace versátil para diferentes entornos.

¿Es posible modificar las estructuras de los documentos utilizando el API .NET Word?

Sí, IronWord proporciona herramientas completas para modificar las estructuras de los documentos, incluyendo la adición y eliminación de párrafos, tablas y otros elementos. Permite una amplia personalización de los diseños de documentos.

¿Qué opciones de licencia están disponibles para el API .NET Word?

IronWord ofrece varias opciones de licencia, incluyendo Lite, Plus y licencias Professional, diseñadas para satisfacer las necesidades de desarrolladores individuales y organizaciones de diferentes tamaños.

¿Puedo probar el API .NET Word antes de realizar una compra?

Sí, IronWord ofrece una prueba gratuita, permitiendo a los desarrolladores explorar sus características y capacidades antes de decidir comprar una licencia.

¿Qué entornos de desarrollo son compatibles con IronWord?

IronWord es compatible con una variedad de entornos de desarrollo, incluyendo Blazor, WebForms, Xamarin, MAUI, WPF y aplicaciones de consola, soportando C#, VB.NET y F# en .NET Core, .NET Standard y .NET Framework.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más