How to Add Style to Text in DOCX with C

This article was translated from English: Does it need improvement?
Translated
View the article in English

La clase de TextStyle de IronWord permite a los desarrolladores de .NET aplicar formato de texto profesional a documentos de Word programáticamente, incluidos fuentes, colores, negrita, cursiva, subrayado y más. Ya se trate de generar informes, crear plantillas o automatizar la creación de documentos, IronWord ofrece herramientas de estilo completas que reproducen las opciones de formato de Microsoft Word.

Inicio rápido: Aplicar estilo a texto en DOCX con C#

  1. Instala IronWord con el Administrador de Paquetes NuGet

    PM > Install-Package IronWord
  2. Copie y ejecute este fragmento de código.

    // Quick example
    using IronWord;
    using IronWord.Models;
    
    // Initialize a new Word document
    WordDocument doc = new WordDocument();
    
    // Create a Run with styled text
    Run textRun = new Run(new TextContent("Styled text"));
    
    // Apply styling properties to the Run
    textRun.Style = new TextStyle()
    {
        IsBold = true,
        Color = Color.Red,
        FontSize = 16,
        TextFont = new Font()
        {
            FontFamily = "Arial"
        }
    };
    
    // Create paragraph and add the styled Run
    Paragraph paragraph = new Paragraph();
    paragraph.AddChild(textRun);
    
    // Add paragraph to document and save
    doc.AddParagraph(paragraph);
    doc.SaveAs("styled.docx");
  3. Despliegue para probar en su entorno real

    Comienza a usar IronWord en tu proyecto hoy mismo con una prueba gratuita

    arrow pointer

¿Cómo añadir estilo de texto a DOCX?

Aplicar estilos de texto en IronWord requiere usar el patrón Run wrapper. Cree un objeto de WordDocument, luego cree un objeto de Run que contenga TextContent con su texto. Aplique un TextStyle al Run (no al TextContent) utilizando propiedades como IsBold, Color, o FontSize.

Una vez estilizado, agregue el Run a un Paragraph usando AddChild, inserte el párrafo en el documento y guarde el resultado. Este enfoque proporciona un control programático sobre el formato del texto para escenarios de generación automática de documentos que requieren un estilo coherente.

Por favor notaLa jerarquía de documentos de IronWord sigue la estructura: DocumentDocumentSectionParagraphRunTextContent. Los estilos se aplican a nivel Run, no directamente en TextContent.

:path=/static-assets/word/content-code-examples/how-to/add-style-text-simple.cs
using IronWord;
using IronWord.Models;
using IronWord.Models.Enums;

// Load docx
WordDocument doc = new WordDocument("sample.docx");

// Configure text
Run textRun = new Run(new TextContent("Add text using IronWord"));

// Configure text style settings
textRun.Style = new TextStyle()
{
    FontSize = 24, // Text Size is 24
    TextFont = new Font()
    {
        FontFamily = "Calibri" // Text Font is "Calibri"
    },
    Color = Color.Red, // Set text color to red
    IsBold = true,     // Make text bold
    IsItalic = true,   // Make text italic
    Underline = new Underline(), // Have an underline
    Strike = StrikeValue.DoubleStrike, // No strike-through
};

Paragraph paragraph = new Paragraph();

// Add text to paragraph
paragraph.AddChild(textRun);

// Add paragraph to document
doc.AddParagraph(paragraph);

// Save document
doc.SaveAs("add-text-style.docx");
Imports IronWord
Imports IronWord.Models
Imports IronWord.Models.Enums

' Load docx
Dim doc As New WordDocument("sample.docx")

' Configure text
Dim textRun As New Run(New TextContent("Add text using IronWord"))

' Configure text style settings
textRun.Style = New TextStyle() With {
    .FontSize = 24, ' Text Size is 24
    .TextFont = New Font() With {
        .FontFamily = "Calibri" ' Text Font is "Calibri"
    },
    .Color = Color.Red, ' Set text color to red
    .IsBold = True,     ' Make text bold
    .IsItalic = True,   ' Make text italic
    .Underline = New Underline(), ' Have an underline
    .Strike = StrikeValue.DoubleStrike ' No strike-through
}

Dim paragraph As New Paragraph()

' Add text to paragraph
paragraph.AddChild(textRun)

' Add paragraph to document
doc.AddParagraph(paragraph)

' Save document
doc.SaveAs("add-text-style.docx")
$vbLabelText   $csharpLabel

¿Qué resultados se obtendrán?

Interfaz de Microsoft Word que muestra la cinta de diseño y el documento con el formato de texto tachado en rojo

La clase TextStyle proporciona opciones de formato esenciales, incluyendo propiedades de fuente, color de texto, negrita, cursiva y subrayado. Note que FontSize se configura a nivel TextStyle (no dentro de Font), mientras que FontFamily se establece dentro de la propiedad TextFont. El objeto Run envuelve el TextContent y contiene el estilo, siguiendo el patrón de jerarquía de documentos de IronWord. El ejemplo demuestra cómo varias propiedades de estilo se combinan para crear un texto ricamente formateado cuando se aplica a un Run.


Aplicación de estilos de texto en documentos regulatorios españoles

El estilo de texto programático cobra especial relevancia cuando se generan documentos sujetos a la normativa española vigente. Los equipos de desarrollo que trabajen en empresas mid-market con obligaciones de facturación electrónica o de cumplimiento de protección de datos encontrarán en la clase TextStyle de IronWord una herramienta valiosa para garantizar la coherencia y la conformidad visual de sus documentos.

Plantillas de consentimiento LOPDGDD: Las organizaciones bajo la supervisión de la AEPD que generan formularios de consentimiento en formato Word deben aplicar estilos tipográficos específicos para cumplir con las recomendaciones de legibilidad. La LOPDGDD requiere que las cláusulas de consentimiento sean presentadas de forma clara y diferenciada del resto del texto. Usando TextStyle con FontSize mayor (por ejemplo, 14pt) y IsBold = true para los encabezados de las cláusulas, y Color en un tono contrastante para las secciones de revocación de consentimiento, se garantiza que el interesado identifique visualmente los elementos de consentimiento sin ambigüedad.

Documentos Facturae con identificación tipográfica: El estándar Facturae admitido por la AEAT para la facturación electrónica entre empresas y con la Administración requiere documentos con un orden de lectura claro. Cuando se genera la versión DOCX de una factura electrónica para su envío a través de FACe, los campos de identificación fiscal — como el NIF/CIF, el número de serie de la factura o los códigos de concepto — deben destacarse visualmente. Aplicar SmallCaps = true y un Color corporativo a estos elementos garantiza que el documento Word sea coherente con la presentación XML del Facturae y facilita la revisión por parte de la AEAT en caso de comprobación. Para empresas del País Vasco obligadas a emitir TicketBAI en territorios como Bizkaia, Gipuzkoa o Araba, la versión DOCX del ticket debe incluir el código QR y la información de registro de forma visualmente destacada.

Documentos firmados bajo eIDAS: Cuando un documento Word generado programáticamente va a ser firmado electrónicamente con un certificado emitido por la FNMT (Fábrica Nacional de Moneda y Timbre) u otra Autoridad de Certificación reconocida bajo el reglamento eIDAS, el estilo tipográfico de las secciones críticas debe estar fijado antes de la firma. Cualquier modificación posterior del estilo invalidaría la firma. Usar TextStyle de forma declarativa y centralizada en el código permite auditar con precisión qué estilos estaban activos en el momento de la generación del documento, facilitando la defensa técnica ante reclamaciones relacionadas con la integridad del documento firmado.

¿Qué estilos específicos puedo añadir?

¿Cómo puedo cambiar el color del texto?

La propiedad Color en TextStyle establece el color del texto usando colores predefinidos de IronWord.Models.Color o valores hexadecimales personalizados. Esto enfatiza el contenido específico o coincide con los colores de la marca. IronWord admite una amplia gama de colores, como rojo, azul, verde, oliva, azul marino y granate.

:path=/static-assets/word/content-code-examples/how-to/add-style-text-add-text.cs
using IronWord;
using IronWord.Models;

// Create document
WordDocument doc = new WordDocument();

// Add colored text
Run textRun = new Run(new TextContent("This text is olive-colored!"));
textRun.Style = new TextStyle()
{
    Color = IronWord.Models.Color.Olive // defining text to be colored olive
};

Paragraph paragraph = new Paragraph();
paragraph.AddChild(textRun);
doc.AddParagraph(paragraph);

// Save document
doc.SaveAs("colored-text.docx");
Imports IronWord
Imports IronWord.Models

' Create document
Dim doc As New WordDocument()

' Add colored text
Dim textRun As New Run(New TextContent("This text is olive-colored!"))
textRun.Style = New TextStyle() With {
    .Color = IronWord.Models.Color.Olive ' defining text to be colored olive
}

Dim paragraph As New Paragraph()
paragraph.AddChild(textRun)
doc.AddParagraph(paragraph)

' Save document
doc.SaveAs("colored-text.docx")
$vbLabelText   $csharpLabel

¿Qué aspecto tiene el texto coloreado?

Microsoft Word muestra el formato de texto en color oliva con la cinta de opciones de la pestaña Inicio que muestra las herramientas de fuente y párrafo

¿Cómo configuro la familia y el tamaño de la fuente?

Personalice la apariencia del texto con la propiedad TextFont. Establezca FontFamily en cualquier nombre de fuente instalada (por ejemplo, "Arial", "Times New Roman") y FontSize en puntos. Así se establece una jerarquía visual y se garantiza la legibilidad en distintos dispositivos y plataformas.

:path=/static-assets/word/content-code-examples/how-to/add-style-text-add-font.cs
using IronWord;
using IronWord.Models;

// Create document
WordDocument doc = new WordDocument();

// Add text with custom font family and size
Run textRun = new Run(new TextContent("This text uses Arial at 24pt!"));
textRun.Style = new TextStyle()
{
    FontSize = 24,  // Set font size in points
    TextFont = new IronWord.Models.Font()
    {
        FontFamily = "Arial"  // Set font family
    }
};

Paragraph paragraph = new Paragraph();
paragraph.AddChild(textRun);
doc.AddParagraph(paragraph);

// Save document
doc.SaveAs("font-styled-text.docx");
Imports IronWord
Imports IronWord.Models

' Create document
Dim doc As New WordDocument()

' Add text with custom font family and size
Dim textRun As New Run(New TextContent("This text uses Arial at 24pt!"))
textRun.Style = New TextStyle() With {
    .FontSize = 24,  ' Set font size in points
    .TextFont = New IronWord.Models.Font() With {
        .FontFamily = "Arial"  ' Set font family
    }
}

Dim paragraph As New Paragraph()
paragraph.AddChild(textRun)
doc.AddParagraph(paragraph)

' Save document
doc.SaveAs("font-styled-text.docx")
$vbLabelText   $csharpLabel

¿Qué aspecto tiene el estilo de fuente personalizado?

Microsoft Word muestra la fuente Arial a 24pt seleccionada en la barra de herramientas con el texto de muestra formateado

¿Cómo poner el texto en negrita?

Establezca la propiedad IsBold en true para hacer el texto Bold. El texto Bold se usa comúnmente para encabezados, énfasis o resaltar información importante. Combinado con otras propiedades de estilo, el texto Bold crea jerarquía visual y mejora la legibilidad.

:path=/static-assets/word/content-code-examples/how-to/add-style-text-add-bold.cs
using IronWord;
using IronWord.Models;

// Create document
WordDocument doc = new WordDocument();

// Add bold text
Run textRun = new Run(new TextContent("this is bold!"));
textRun.Style = new TextStyle()
{
    IsBold = true  // Make text bold
};

Paragraph paragraph = new Paragraph();
paragraph.AddChild(textRun);
doc.AddParagraph(paragraph);

// Save document
doc.SaveAs("bold-text.docx");
Imports IronWord
Imports IronWord.Models

' Create document
Dim doc As New WordDocument()

' Add bold text
Dim textRun As New Run(New TextContent("this is bold!"))
textRun.Style = New TextStyle() With {
    .IsBold = True ' Make text bold
}

Dim paragraph As New Paragraph()
paragraph.AddChild(textRun)
doc.AddParagraph(paragraph)

' Save document
doc.SaveAs("bold-text.docx")
$vbLabelText   $csharpLabel

¿Qué aspecto tiene el texto en negrita?

Interfaz de Microsoft Word que muestra el formato de texto en negrita con el texto '¡esto es negrita!

¿Cómo poner texto en cursiva?

Establezca la propiedad IsItalic en true para el estilo Italic. El texto Italic se usa típicamente para énfasis, títulos, palabras extranjeras o términos técnicos. Este formato sutil diferencia los elementos de texto sin el peso visual del formato Bold.

:path=/static-assets/word/content-code-examples/how-to/add-style-text-add-italic.cs
using IronWord;
using IronWord.Models;

// Create document
WordDocument doc = new WordDocument();

// Add italic text
Run textRun = new Run(new TextContent("this is italic."));
textRun.Style = new TextStyle()
{
    IsItalic = true  // Make text italic
};

Paragraph paragraph = new Paragraph();
paragraph.AddChild(textRun);
doc.AddParagraph(paragraph);

// Save document
doc.SaveAs("italic-text.docx");
Imports IronWord
Imports IronWord.Models

' Create document
Dim doc As New WordDocument()

' Add italic text
Dim textRun As New Run(New TextContent("this is italic."))
textRun.Style = New TextStyle() With {
    .IsItalic = True  ' Make text italic
}

Dim paragraph As New Paragraph()
paragraph.AddChild(textRun)
doc.AddParagraph(paragraph)

' Save document
doc.SaveAs("italic-text.docx")
$vbLabelText   $csharpLabel

¿Qué aspecto tiene el texto en cursiva?

Documento de Word que muestra texto en cursiva con las opciones de formato de la pestaña Inicio visibles en la interfaz de cinta

¿Cuáles son las propiedades de estilo disponibles?

IronWord ofrece amplias propiedades de estilo que reflejan las opciones de formato de Microsoft Word. Estas propiedades se combinan para crear un formato de texto complejo que cumpla las normas de los documentos profesionales.

Método de peinado Descripción Ejemplo
TextFont Personaliza la apariencia del texto con un objeto Font , configurando la familia de fuentes. Nota: FontSize se configura en el nivel TextStyle , no dentro Font . textRun.Style = new TextStyle() { FontSize = 24, TextFont = new Font() { FontFamily = "Calibri" } };
Color Establece el color del texto utilizando colores predefinidos de IronWord.Models.Color o valores hexadecimales personalizados. textRun.Style.Color = IronWord.Models.Color.Red;
IsBold Hace el texto Negrita cuando se establece en true, comúnmente usado para títulos o énfasis. textRun.Style.IsBold = true;
EsItalico Aplica formato Cursiva al texto cuando se establece en true, típicamente usado para énfasis o títulos. textRun.Style.IsItalic = true;
Subrayado Añade un Subrayado al texto utilizando un objeto Subrayado con varios estilos de subrayado. textRun.Style.Underline = new Underline();
Strike Aplica tachado al texto utilizando el enum StrikeValue (Strike o DoubleStrike). textRun.Style.Strike = StrikeValue.Strike;
Caps Aplica efectos de capitalización al texto, convirtiendo todos los caracteres a mayúsculas. textRun.Style.Caps = true;
Escala de caracteres Ajusta el ancho proporcional de los caracteres como un porcentaje de su tamaño normal. textRun.Style.CharacterScale = 150;
Alto relieve Aplica un efecto de relieve al texto, creando una apariencia elevada. textRun.Style.Emboss = true;
Enfasis Añade marcas de énfasis al texto con estilo usando valores EmphasisMarkValues enum. textRun.Style.Emphasis = EmphasisMarkValues.Dot;
Interlineado Controla el espaciado entre líneas de texto para mejorar la legibilidad mediante un objeto Interlineado. textRun.Style.LineSpacing = new LineSpacing() { Value = 1.5 };
Resumen Representa el texto con un efecto de contorno, mostrando solo los bordes de los caracteres. textRun.Style.Outline = true;
Sombreado Aplica color de fondo o sombreado al texto mediante un objeto Sombreado. textRun.Style.Shading = new Shading() { Color = Color.Yellow };
SmallCaps Convierte letras minúsculas en mayúsculas pequeñas manteniendo la distinción entre mayúsculas y minúsculas. textRun.Style.SmallCaps = true;
PosiciónVertical Ajusta la ubicación vertical del texto en relación con su línea base, medida en puntos. textRun.Style.VerticalPosition = 5.0;
Alineación vertical del texto Posiciona el texto verticalmente dentro de su contenedor utilizando VerticalPositionValues enum. textRun.Style.VerticalTextAlignment = VerticalPositionValues.Superscript;

Combinación de varios estilos

El poder de estilización del texto de IronWord proviene de la combinación de múltiples propiedades para lograr un formato complejo. A continuación se muestra un ejemplo de texto con estilo profesional mediante la combinación de varias propiedades de estilo:

using IronWord;
using IronWord.Models;

// Create a new document
WordDocument doc = new WordDocument();

// Create richly formatted header text using Run
Run headerRun = new Run(new TextContent("Professional Document Header"));
headerRun.Style = new TextStyle()
{
    FontSize = 28,
    TextFont = new Font()
    {
        FontFamily = "Georgia"
    },
    Color = Color.DarkBlue,
    IsBold = true,
    SmallCaps = true,
    Underline = new Underline(),
    CharacterScale = 110,  // Slightly expand character width
    Shading = new Shading()
    {
        Color = Color.LightGray  // Light background
    }
};

// Add header to document using AddChild for styled Run
Paragraph headerParagraph = new Paragraph();
headerParagraph.AddChild(headerRun);
doc.AddParagraph(headerParagraph);

// Create body text with different styling
Run bodyRun = new Run(new TextContent("This is professionally formatted body text with custom styling."));
bodyRun.Style = new TextStyle()
{
    FontSize = 11,
    TextFont = new Font()
    {
        FontFamily = "Calibri"
    },
    Color = Color.Black,
    LineSpacing = new LineSpacing() { Value = 1.15 }  // Slightly increased line spacing
};

Paragraph bodyParagraph = new Paragraph();
bodyParagraph.AddChild(bodyRun);
doc.AddParagraph(bodyParagraph);

// Save the document
doc.SaveAs("professional-document.docx");
using IronWord;
using IronWord.Models;

// Create a new document
WordDocument doc = new WordDocument();

// Create richly formatted header text using Run
Run headerRun = new Run(new TextContent("Professional Document Header"));
headerRun.Style = new TextStyle()
{
    FontSize = 28,
    TextFont = new Font()
    {
        FontFamily = "Georgia"
    },
    Color = Color.DarkBlue,
    IsBold = true,
    SmallCaps = true,
    Underline = new Underline(),
    CharacterScale = 110,  // Slightly expand character width
    Shading = new Shading()
    {
        Color = Color.LightGray  // Light background
    }
};

// Add header to document using AddChild for styled Run
Paragraph headerParagraph = new Paragraph();
headerParagraph.AddChild(headerRun);
doc.AddParagraph(headerParagraph);

// Create body text with different styling
Run bodyRun = new Run(new TextContent("This is professionally formatted body text with custom styling."));
bodyRun.Style = new TextStyle()
{
    FontSize = 11,
    TextFont = new Font()
    {
        FontFamily = "Calibri"
    },
    Color = Color.Black,
    LineSpacing = new LineSpacing() { Value = 1.15 }  // Slightly increased line spacing
};

Paragraph bodyParagraph = new Paragraph();
bodyParagraph.AddChild(bodyRun);
doc.AddParagraph(bodyParagraph);

// Save the document
doc.SaveAs("professional-document.docx");
Imports IronWord
Imports IronWord.Models

' Create a new document
Dim doc As New WordDocument()

' Create richly formatted header text using Run
Dim headerRun As New Run(New TextContent("Professional Document Header"))
headerRun.Style = New TextStyle() With {
    .FontSize = 28,
    .TextFont = New Font() With {
        .FontFamily = "Georgia"
    },
    .Color = Color.DarkBlue,
    .IsBold = True,
    .SmallCaps = True,
    .Underline = New Underline(),
    .CharacterScale = 110,  ' Slightly expand character width
    .Shading = New Shading() With {
        .Color = Color.LightGray  ' Light background
    }
}

' Add header to document using AddChild for styled Run
Dim headerParagraph As New Paragraph()
headerParagraph.AddChild(headerRun)
doc.AddParagraph(headerParagraph)

' Create body text with different styling
Dim bodyRun As New Run(New TextContent("This is professionally formatted body text with custom styling."))
bodyRun.Style = New TextStyle() With {
    .FontSize = 11,
    .TextFont = New Font() With {
        .FontFamily = "Calibri"
    },
    .Color = Color.Black,
    .LineSpacing = New LineSpacing() With {.Value = 1.15}  ' Slightly increased line spacing
}

Dim bodyParagraph As New Paragraph()
bodyParagraph.AddChild(bodyRun)
doc.AddParagraph(bodyParagraph)

' Save the document
doc.SaveAs("professional-document.docx")
$vbLabelText   $csharpLabel

Este enfoque de estilo integral crea documentos que mantienen una imagen de marca coherente y un aspecto profesional durante todo el proceso de generación de documentos de su aplicación.

Preguntas Frecuentes

¿Cómo puedo aplicar formato de texto a documentos de Word mediante programación en C#?

La clase TextStyle de IronWord le permite aplicar un formato de texto profesional que incluye fuentes, colores, negrita, cursiva y subrayado. Simplemente cree un objeto TextContent con su texto, aplique un TextStyle con las propiedades deseadas, añádalo a un párrafo y guarde el documento.

¿Cuáles son los pasos básicos para dar estilo al texto en archivos DOCX?

Para aplicar estilo al texto con IronWord: 1) Instale IronWord a través de NuGet, 2) Cree un objeto WordDocument, 3) Cree TextContent con su texto, 4) Aplique propiedades TextStyle como fuente, color o negrita, 5) Añada el texto a un párrafo y guarde.

¿Cómo debo estilizar las cláusulas de consentimiento en documentos LOPDGDD generados con IronWord?

Para cumplir con las recomendaciones de la AEPD sobre presentación clara de cláusulas de consentimiento, aplique IsBold = true y un FontSize mayor (por ejemplo 14pt) a los encabezados de las cláusulas. Use un Color contrastante para las secciones de revocación de consentimiento, diferenciándolas visualmente del contenido comercial del documento.

¿Qué opciones de formato de texto hay disponibles?

La clase TextStyle de IronWord proporciona opciones de formato esenciales, incluidas propiedades de fuente (FontFamily y FontSize), color de texto, negrita, cursiva, subrayado y tachado. Estas opciones pueden combinarse para crear texto con formato enriquecido.

¿Puedo aplicar varios estilos de texto simultáneamente?

Sí, IronWord permite combinar varias propiedades de estilo en un único objeto TextStyle. Puede aplicar negrita, cursiva, color y cambios de fuente a la vez para crear un formato de texto complejo.

¿Por qué es importante fijar el estilo del texto antes de firmar un documento con un certificado eIDAS de la FNMT?

Cuando un documento Word generado con IronWord va a ser firmado con un certificado de la FNMT u otra autoridad reconocida bajo eIDAS, cualquier modificación del estilo después de la firma invalidaría la firma electrónica. Al usar TextStyle de forma declarativa y centralizada en el código, puede auditar con precisión qué estilos estaban activos en el momento de la generación del documento, facilitando la defensa técnica ante reclamaciones de integridad.

¿Cómo puedo cambiar el color del texto en documentos de Word utilizando C#?

La propiedad Color en TextStyle de IronWord le permite establecer el color del texto utilizando colores predefinidos de IronWord.Models.Color o valores hexadecimales personalizados. Esta característica ayuda a enfatizar el contenido específico o hacer coincidir los colores de la marca en sus documentos.

Ahmad Sohail
Desarrollador Full Stack

Ahmad es un desarrollador full-stack con una sólida base en C#, Python y tecnologías web. Tiene un profundo interés en construir soluciones de software escalables y disfruta explorando cómo el diseño y la funcionalidad se encuentran en aplicaciones del mundo real.

Antes ...

Leer más
¿Listo para empezar?
Nuget Descargas 44,829 | Versión: 2026.5 just released
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package IronWord
ejecuta una muestra observa cómo tus datos se convierten en un documento de Word.