# How to Add Style to Text in DOCX with C#
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.
*as-heading:2(Inicio rápido: Aplicar estilo a texto en DOCX con C#)*
```csharp
:title=Quickstart
// 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");
```
<div class="hsg-featured-snippet">
<h3>Flujo de trabajo mínimo (5 pasos)</h3>
<ol>
<li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://nuget.org/packages/IronWord/">Instalar la biblioteca IronWord de C#</a></li>
<li>Crear un objeto <code>Run</code> que contenga <code>TextContent</code></li>
<li>Aplicar <code>TextStyle</code> a la <code>Run</code> con propiedades como <code>FontSize</code> , <code>IsBold</code>y <code>Color</code></li>
<li>Agregue la <code>Run</code> con estilo a un <code>Paragraph</code> usando <code>AddChild</code></li>
<li>Guardar el documento con los estilos aplicados</li>
</ol>
</div>
## ¿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.
[[i:(La jerarquía de documentos de IronWord sigue la estructura: `Document` → `DocumentSection` → `Paragraph` → `Run` → `TextContent`. Los estilos se aplican a nivel `Run`, no directamente en `TextContent`.)]]
```csharp
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, // Double 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");
```
### ¿Qué resultados se obtendrán?
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/word/how-to/add-style-text/add-style-text-simple.webp" alt="Interfaz de Microsoft Word que muestra la cinta de diseño y el documento con el formato de texto tachado en rojo" class="img-responsive add-shadow" />
</div>
</div>
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`.
<hr />
## 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.
```csharp
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");
```
### ¿Qué aspecto tiene el texto coloreado?
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/word/how-to/add-style-text/add-style-text-add-text.webp" alt="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" class="img-responsive add-shadow" />
</div>
</div>
### ¿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.
```csharp
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");
```
### ¿Qué aspecto tiene el estilo de fuente personalizado?
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/word/how-to/add-style-text/add-style-text-add-font.webp" alt="Microsoft Word muestra la fuente Arial a 24pt seleccionada en la barra de herramientas con el texto de muestra formateado" class="img-responsive add-shadow" />
</div>
</div>
### ¿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.
```csharp
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");
```
### ¿Qué aspecto tiene el texto en negrita?
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/word/how-to/add-style-text/add-style-text-add-bold.webp" alt="Interfaz de Microsoft Word que muestra el formato de texto en negrita con el texto '¡esto es negrita!" class="img-responsive add-shadow" />
</div>
</div>
### ¿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`.
```csharp
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");
```
### ¿Qué aspecto tiene el texto en cursiva?
<div class="content-img-align-center">
<div class="center-image-wrapper">
<img src="/static-assets/word/how-to/add-style-text/add-style-text-add-italic.webp" alt="Documento de Word que muestra texto en cursiva con las opciones de formato de la pestaña Inicio visibles en la interfaz de cinta" class="img-responsive add-shadow" />
</div>
</div>
<hr />
## ¿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.
<table class="tg">
<thead>
<tr>
<th class="tg-fymr">Método de peinado</th>
<th class="tg-fymr">Descripción</th>
<th class="tg-fymr">Ejemplo</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tg-0pky"><code>TextFont</code></td>
<td class="tg-0pky">Personaliza la apariencia del texto con un <strong>objeto <code>Font</code></strong> , configurando la familia de fuentes. Nota: <code>FontSize</code> se configura en el nivel <code>TextStyle</code> , no dentro <code>Font</code> .</td>
<td class="tg-0pky"><code>textRun.Style = new TextStyle() { FontSize = 24, TextFont = new Font() { FontFamily = "Calibri" } };</code></td>
</tr>
<tr>
<td class="tg-0pky"><code>Color</code></td>
<td class="tg-0pky">Establece el color del texto utilizando colores predefinidos de <strong>IronWord.Models.Color</strong> o valores hexadecimales personalizados.</td>
<td class="tg-0pky"><code>textRun.Style.Color = IronWord.Models.Color.Red;</code></td>
</tr>
<tr>
<td class="tg-0pky"><code>IsBold</code></td>
<td class="tg-0pky">Hace el texto <code>Negrita</code> cuando se establece en <code>true</code>, comúnmente usado para títulos o énfasis.</td>
<td class="tg-0pky"><code>textRun.Style.IsBold = true;</code></td>
</tr>
<tr>
<td class="tg-0pky"><code>EsItalico</code></td>
<td class="tg-0pky">Aplica formato <code>Cursiva</code> al texto cuando se establece en <code>true</code>, típicamente usado para énfasis o títulos.</td>
<td class="tg-0pky"><code>textRun.Style.IsItalic = true;</code></td>
</tr>
<tr>
<td class="tg-0pky"><code>Subrayado</code></td>
<td class="tg-0pky">Añade un <code>Subrayado</code> al texto utilizando un <strong><code>objeto Subrayado</code></strong> con varios estilos de subrayado.</td>
<td class="tg-0pky"><code>textRun.Style.Underline = new Underline();</code></td>
</tr>
<tr>
<td class="tg-0pky"><code>Strike</code></td>
<td class="tg-0pky">Aplica tachado al texto utilizando el <strong>enum <code>StrikeValue</code></strong> (<code>Strike</code> o <code>DoubleStrike</code>).</td>
<td class="tg-0pky"><code>textRun.Style.Strike = StrikeValue.Strike;</code></td>
</tr>
<tr>
<td class="tg-0pky"><code>Caps</code></td>
<td class="tg-0pky">Aplica efectos de capitalización al texto, convirtiendo todos los caracteres a mayúsculas.</td>
<td class="tg-0pky"><code>textRun.Style.Caps = true;</code></td>
</tr>
<tr>
<td class="tg-0pky"><code>Escala de caracteres</code></td>
<td class="tg-0pky">Ajusta el ancho proporcional de los caracteres como un porcentaje de su tamaño normal.</td>
<td class="tg-0pky"><code>textRun.Style.CharacterScale = 150;</code></td>
</tr>
<tr>
<td class="tg-0pky"><code>Alto relieve</code></td>
<td class="tg-0pky">Aplica un efecto de relieve al texto, creando una apariencia elevada.</td>
<td class="tg-0pky"><code>textRun.Style.Emboss = true;</code></td>
</tr>
<tr>
<td class="tg-0pky"><code>Enfasis</code></td>
<td class="tg-0pky">Añade marcas de énfasis al texto con estilo usando valores <strong><code>EmphasisMarkValues</code> enum</strong>.</td>
<td class="tg-0pky"><code>textRun.Style.Emphasis = EmphasisMarkValues.Dot;</code></td>
</tr>
<tr>
<td class="tg-0pky"><code>Interlineado</code></td>
<td class="tg-0pky">Controla el espaciado entre líneas de texto para mejorar la legibilidad mediante un objeto <strong><code>Interlineado</code></strong>.</td>
<td class="tg-0pky"><code>textRun.Style.LineSpacing = new LineSpacing() { Value = 1.5 };</code></td>
</tr>
<tr>
<td class="tg-0pky"><code>Resumen</code></td>
<td class="tg-0pky">Representa el texto con un efecto de contorno, mostrando solo los bordes de los caracteres.</td>
<td class="tg-0pky"><code>textRun.Style.Outline = true;</code></td>
</tr>
<tr>
<td class="tg-0pky"><code>Sombreado</code></td>
<td class="tg-0pky">Aplica color de fondo o sombreado al texto mediante un objeto <strong><code>Sombreado</code></strong>.</td>
<td class="tg-0pky"><code>textRun.Style.Shading = new Shading() { Color = Color.Yellow };</code></td>
</tr>
<tr>
<td class="tg-0pky"><code>SmallCaps</code></td>
<td class="tg-0pky">Convierte letras minúsculas en mayúsculas pequeñas manteniendo la distinción entre mayúsculas y minúsculas.</td>
<td class="tg-0pky"><code>textRun.Style.SmallCaps = true;</code></td>
</tr>
<tr>
<td class="tg-0pky"><code>VerticalPosition</code></td>
<td class="tg-0pky">Ajusta la ubicación vertical del texto en relación con su línea base, medida en puntos.</td>
<td class="tg-0pky"><code>textRun.Style.VerticalPosition = 5.0;</code></td>
</tr>
<tr>
<td class="tg-0pky"><code>Alineación vertical del texto</code></td>
<td class="tg-0pky">Posiciona el texto verticalmente dentro de su contenedor utilizando <strong><code>VerticalPositionValues</code> enum</strong>.</td>
<td class="tg-0pky"><code>textRun.Style.VerticalTextAlignment = VerticalPositionValues.Superscript;</code></td>
</tr>
</tbody>
</table>
### 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:
```csharp
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");
```
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.
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#
1Install IronWord with NuGet Package Manager
PM > Install-Package IronWord
Install-Package IronWord
2Copie y ejecute este fragmento de código.
// Quick exampleusing IronWord;using IronWord.Models;// Initialize a new Word documentWordDocument doc = new WordDocument();// Create a Run with styled textRun textRun = new Run(new TextContent("Styled text"));// Apply styling properties to the RuntextRun.Style = new TextStyle(){IsBold = true,Color = Color.Red,FontSize = 16,TextFont = new Font() {FontFamily = "Arial" }};// Create paragraph and add the styled RunParagraph paragraph = new Paragraph();paragraph.AddChild(textRun);// Add paragraph to document and savedoc.AddParagraph(paragraph);doc.SaveAs("styled.docx");
// 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");
C#
3Despliegue para probar en su entorno real
Comienza a usar IronWord en tu proyecto hoy mismo con una prueba gratuita
Aplicar TextStyle a la Run con propiedades como FontSize , IsBoldy Color
Agregue la Run con estilo a un Paragraph usando AddChild
Guardar el documento con los estilos aplicados
¿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 nota: La jerarquía de documentos de IronWord sigue la estructura: Document → DocumentSection → Paragraph → Run → TextContent. Los estilos se aplican a nivel Run, no directamente en TextContent.
using IronWord;using IronWord.Models;using IronWord.Models.Enums;// Load docxWordDocument doc = new WordDocument("sample.docx");// Configure textRun textRun = new Run(new TextContent("Add text using IronWord"));// Configure text style settingstextRun.Style = new TextStyle(){FontSize = 24, // Text Size is 24TextFont = new Font() {FontFamily = "Calibri" // Text Font is "Calibri" },Color = Color.Red, // Set text color to redIsBold = true, // Make text boldIsItalic = true, // Make text italicUnderline = new Underline(), // Have an underlineStrike = StrikeValue.DoubleStrike, // Double strike-through};Paragraph paragraph = new Paragraph();// Add text to paragraphparagraph.AddChild(textRun);// Add paragraph to documentdoc.AddParagraph(paragraph);// Save documentdoc.SaveAs("add-text-style.docx");
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, // Double 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");
C#
¿Qué resultados se obtendrán?
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.
using IronWord;using IronWord.Models;// Create documentWordDocument doc = new WordDocument();// Add colored textRun 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 documentdoc.SaveAs("colored-text.docx");
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");
ImportsIronWordImportsIronWord.Models' Create documentDim doc As New WordDocument()' Add colored textDim 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 documentdoc.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")
¿Qué aspecto tiene el texto coloreado?
¿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.
using IronWord;using IronWord.Models;// Create documentWordDocument doc = new WordDocument();// Add text with custom font family and sizeRun textRun = new Run(new TextContent("This text uses Arial at 24pt!"));textRun.Style = new TextStyle(){FontSize = 24, // Set font size in pointsTextFont = new IronWord.Models.Font() {FontFamily = "Arial" // Set font family }};Paragraph paragraph = new Paragraph();paragraph.AddChild(textRun);doc.AddParagraph(paragraph);// Save documentdoc.SaveAs("font-styled-text.docx");
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");
ImportsIronWordImportsIronWord.Models' Create documentDim doc As New WordDocument()' Add text with custom font family and sizeDim 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 documentdoc.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")
¿Qué aspecto tiene el estilo de fuente personalizado?
¿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.
using IronWord;using IronWord.Models;// Create documentWordDocument doc = new WordDocument();// Add bold textRun 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 documentdoc.SaveAs("bold-text.docx");
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");
ImportsIronWordImportsIronWord.Models' Create documentDim doc As New WordDocument()' Add bold textDim 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 documentdoc.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")
¿Qué aspecto tiene el texto en 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.
using IronWord;using IronWord.Models;// Create documentWordDocument doc = new WordDocument();// Add italic textRun 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 documentdoc.SaveAs("italic-text.docx");
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");
ImportsIronWordImportsIronWord.Models' Create documentDim doc As New WordDocument()' Add italic textDim 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 documentdoc.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")
¿Qué aspecto tiene el texto en cursiva?
¿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;
VerticalPosition
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.
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 documentWordDocument doc = new WordDocument();// Create richly formatted header text using RunRun 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 widthShading = new Shading() {Color = Color.LightGray// Light background }};// Add header to document using AddChild for styled RunParagraph headerParagraph = new Paragraph();headerParagraph.AddChild(headerRun);doc.AddParagraph(headerParagraph);// Create body text with different stylingRun 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 documentdoc.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");
ImportsIronWordImportsIronWord.Models' Create a new documentDim doc As New WordDocument()' Create richly formatted header text using RunDim 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 RunDim headerParagraph As New Paragraph()headerParagraph.AddChild(headerRun)doc.AddParagraph(headerParagraph)' Create body text with different stylingDim 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 documentdoc.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")
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.
¿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.
¿Cómo puedo cambiar la familia de fuentes y el tamaño del texto?
Utilice la propiedad TextFont en TextStyle para especificar la familia y el tamaño de la fuente. Establezca FontFamily en fuentes como 'Arial' o 'Times New Roman', y FontSize en el tamaño de punto que desee, como 16 para texto más grande.
¿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.
¿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.
What property is used to italicize text in IronWord?
The IsItalic property is used within the TextStyle class to apply italic formatting to text in IronWord documents.
How do I apply an underline to text using IronWord?
To underline text in an IronWord document, create a new Underline object and assign it to the Underline property in the TextStyle class for the Run object containing your text.
Can I apply complex text styling using multiple properties in IronWord?
Yes, IronWord enables complex text styling by combining multiple TextStyle properties, such as FontSize, Color, IsBold, and Underline, to create richly formatted text in Word documents.
What is the benefit of using IronWord for text styling in DOCX documents?
IronWord offers programmatic control over text styling in DOCX documents, allowing developers to automate document creation while ensuring consistent and professional formatting similar to Microsoft Word.
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.