How to Add a Text Outline Effect in C#
Adding a text outline effect in C# creates a visible border around characters, enhancing readability and visual impact. Use IronWord's TextOutlineEffect class to apply customizable outlines with control over color, thickness, and style. This technique is particularly valuable for creating eye-catching headers, watermarks, or emphasizing important content in business documents and reports.
Text outlines serve multiple purposes in document design: they improve contrast against complex backgrounds, create visual hierarchy, and add professional polish to presentations and reports. Whether you're generating invoices, creating marketing materials, or producing technical documentation, text outlines can make your content more engaging and easier to read.
Quickstart: Apply a Default Text Outline Effect InstantlyWith just one line, create a TextStyle that applies a ready-made text outline via TextOutlineEffect.DefaultEffect. It provides text enhancement without complex setup. This approach is perfect for rapid prototyping or when you need a quick visual enhancement without fine-tuning specific parameters.
-
1Install IronWord with NuGet Package Manager
-
2Copy and run this code snippet.
using IronWord; using IronWord.Models; WordDocument doc = new WordDocument(); TextStyle textStyle = new TextStyle(); textStyle.TextEffect = new TextEffect() { TextOutlineEffect = TextOutlineEffect.DefaultEffect }; Paragraph paragraph = new Paragraph(); Run textRun = new Run(new TextContent("Outlined Text")); textRun.Style = textStyle; paragraph.AddChild(textRun); doc.AddParagraph(paragraph); doc.SaveAs("outline.docx");C# -
3Deploy to test on your live environment
Start using IronWord in your project today with a free trial
How to Add Text Outline Effect (5 steps)
- Install IronWord:
Install-Package IronWord - Create a
TextStyleand configureTextOutlineEffectusingTextOutlineEffect.DefaultEffect - Create a
RuncontainingTextContentand assign theTextStyleto theRun - Add the
Runto aParagraphusingAddChild - Save the document
How Do I Add a Text Outline Effect to Word Documents?
Why Should I Use TextOutlineEffect for Text Styling?
To apply a text outline effect, create a TextStyle and populate its TextEffect property with a TextOutlineEffect. Then create a Paragraph, followed by a Run containing TextContent. Assign the TextStyle to the Run (not the TextContent), then use AddChild to add the Run to the Paragraph. This follows the document hierarchy: Document → Paragraph → Run → TextContent.
The TextOutlineEffect class provides a comprehensive API for controlling every aspect of your text outlines. Unlike basic text formatting options, it offers granular control over outline properties such as line width, color, pen alignment, and dash patterns. This level of control is essential when creating professional documents that need to meet specific branding guidelines or accessibility requirements.
For business applications, text outlines can significantly improve document readability when printing on various paper stocks or when documents will be viewed on different devices. The outline creates a buffer zone around each character, ensuring text remains legible even against busy backgrounds or low-contrast scenarios.
What's the Basic Code Pattern for Adding Outlines?
using IronWord;
using IronWord.Models;
// Create new Word document
WordDocument doc = new WordDocument();
// Create and configure text style
TextStyle textStyle = new TextStyle();
textStyle.TextEffect = new TextEffect()
{
TextOutlineEffect = TextOutlineEffect.DefaultEffect,
};
// Create paragraph
Paragraph paragraph = new Paragraph();
// Create run with text and style
Run textRun = new Run(new TextContent("Hello World"));
textRun.Style = textStyle;
// Add run to paragraph
paragraph.AddChild(textRun);
// Add paragraph to document
doc.AddParagraph(paragraph);
// Export new Word document
doc.SaveAs("textOutlineEffect.docx");Imports IronWord
Imports IronWord.Models
' Create new Word document
Dim doc As New WordDocument()
' Create and configure text style
Dim textStyle As New TextStyle()
textStyle.TextEffect = New TextEffect() With {
.TextOutlineEffect = TextOutlineEffect.DefaultEffect
}
' Create paragraph
Dim paragraph As New Paragraph()
' Create run with text and style
Dim textRun As New Run(New TextContent("Hello World"))
textRun.Style = textStyle
' Add run to paragraph
paragraph.AddChild(textRun)
' Add paragraph to document
doc.AddParagraph(paragraph)
' Export new Word document
doc.SaveAs("textOutlineEffect.docx")
This basic pattern demonstrates the fundamental approach to applying text outlines. The code creates a new document, defines a text style with the default outline effect, applies it to text, and saves the result. The DefaultEffect provides a balanced outline that works well for most scenarios, featuring a subtle width and complementary color that enhances rather than overwhelms the text.
How Can I Customize Text Outline Effect Properties?
What Properties Control the Outline Appearance?
The text outline effect offers a variety of customizable properties to suit any design need. Understanding these properties enables you to create outlines that perfectly match your document's visual requirements and brand guidelines. Below are the properties along with their descriptions:
| Property | Description |
|---|---|
PenAlignment | Gets or sets the alignment of the pen. Controls whether the outline is centered on the text or inset (aligned inside the character edge) |
LineCapType | Gets or sets the type of line cap used for the outline effect. Options include flat, round, or square caps that affect how line ends appear |
LineWidth | Gets or sets the width of the outline effect line. Width is specified in points (1/72 inch). Typical values range from 0.1 to 2.0 |
CompoundLineType | Gets or sets the type of compound line used for the outline effect. Enables creation of double, triple, or other multi-line outline styles |
LineJoin | Gets or sets the stroke join style used for the outline effect. Determines how outline corners connect (miter, round, or bevel) |
Color | Gets or sets the solid fill color for the outline effect. Accepts any valid color value for maximum flexibility |
presetLineDash | Gets or sets the preset line dash style for the outline effect. Choose from solid, dashed, dotted, or custom patterns |
Each property serves a specific purpose in creating professional-looking text outlines. For instance, LineWidth directly impacts visual prominence - thinner outlines (0.1-0.3 points) create subtle emphasis, while thicker outlines (1.0-2.0 points) make bold statements. The Color property is crucial for maintaining brand consistency and ensuring adequate contrast for accessibility.
How Do I Apply Custom Outline Properties?
using IronWord;
using IronWord.Models;
using IronWord.Models.Enums;
// Create new Word document
WordDocument doc = new WordDocument();
// Create and configure text style
TextStyle textStyle = new TextStyle();
textStyle.TextEffect = new TextEffect()
{
TextOutlineEffect = new TextOutlineEffect()
{
Color = IronWord.Models.Color.Red,
CompoundLineType = CompoundLineValues.Double,
LineCapType = LineCapValues.Round,
LineJoin = StrokeJoinStyleValues.Bevel,
LineWidth = 0.3,
PenAlignment = PenAlignmentValues.Center,
presetLineDash = PresetLineDashValues.Solid
},
};
// Create paragraph
Paragraph paragraph = new Paragraph();
// Create run with text and style
Run textRun = new Run(new TextContent("Customized text outline"));
textRun.Style = textStyle;
// Add run to paragraph
paragraph.AddChild(textRun);
// Add paragraph to document
doc.AddParagraph(paragraph);
// Export new Word document
doc.SaveAs("customizedTextOutlineEffect.docx");Imports IronWord
Imports IronWord.Models
Imports IronWord.Models.Enums
' Create new Word document
Dim doc As New WordDocument()
' Create and configure text style
Dim textStyle As New TextStyle()
textStyle.TextEffect = New TextEffect() With {
.TextOutlineEffect = New TextOutlineEffect() With {
.Color = IronWord.Models.Color.Red,
.CompoundLineType = CompoundLineValues.Double,
.LineCapType = LineCapValues.Round,
.LineJoin = StrokeJoinStyleValues.Bevel,
.LineWidth = 0.3,
.PenAlignment = PenAlignmentValues.Center,
.presetLineDash = PresetLineDashValues.Solid
}
}
' Create paragraph
Dim paragraph As New Paragraph()
' Create run with text and style
Dim textRun As New Run(New TextContent("Customized text outline"))
textRun.Style = textStyle
' Add run to paragraph
paragraph.AddChild(textRun)
' Add paragraph to document
doc.AddParagraph(paragraph)
' Export new Word document
doc.SaveAs("customizedTextOutlineEffect.docx")
This advanced example showcases the full power of custom outline configuration. The code creates a distinctive red outline with a double line style, demonstrating how multiple properties work together to achieve specific visual effects. The round line caps and bevel joins create smooth, professional-looking outlines that work well for headers and titles.
When implementing custom outlines in production applications, consider creating reusable style templates. Define standard outline configurations for different document elements (headers, subheaders, emphasis text) and store them as constants or configuration settings. This approach ensures consistency across your document generation pipeline and simplifies maintenance when brand guidelines change.
For optimal results, test your outline effects across different output formats and viewing conditions. What looks good on screen might need adjustment for print output. Consider factors like printer resolution, paper color, and viewing distance when selecting outline widths and colors. The flexibility of IronWord's TextOutlineEffect class allows you to fine-tune these parameters programmatically based on output requirements.
Frequently Asked Questions
What is the purpose of a text outline effect in C#?
A text outline effect enhances readability and visual impact by adding a border around characters. It is useful for creating headers, watermarks, and emphasizing important content in documents.
How do I apply a default text outline effect using IronWord?
You can apply a default text outline effect by setting the `TextOutlineEffect.DefaultEffect` to a `TextStyle` object and assigning it to a `Run` in your document structure.
What makes IronWord's text outline effect feature unique?
IronWord's `TextOutlineEffect` class provides a comprehensive API that allows for granular control over properties like color, thickness, and style, ensuring professional and brand-compliant document designs.
Can the text outline effect properties be customized?
Yes, IronWord allows for customization of text outline properties such as color, line width, line join styles, and dash patterns to suit specific design and branding needs.
Why should I use customized text outlines in business documents?
Customized text outlines enhance readability, ensure brand consistency, and can adapt to various viewing conditions like different devices and paper stocks, making documents more professional and accessible.
What is the role of the `TextStyle` class in adding text outlines?
The `TextStyle` class in IronWord is used to configure and apply the `TextOutlineEffect` to text in a document, determining the visual appearance of the text outline.
How is the `TextOutlineEffect` integrated into a Word document using IronWord?
The `TextOutlineEffect` is applied by creating a `TextStyle`, setting its `TextEffect` to include the outline, and assigning it to a `Run` within a `Paragraph` in a Word document.
Does IronWord support rapid prototyping for text outline effects?
Yes, IronWord supports rapid prototyping by allowing the quick application of default text outline effects, which provide immediate text enhancements without complex configurations.
What are some best practices for using text outlines in professional documents?
Best practices include testing outlines in different formats, maintaining consistent styles across documents, and adjusting parameters like width and color based on output needs to ensure optimal readability and aesthetics.
How can IronWord help in maintaining design consistency in documents?
IronWord allows you to define and reuse style templates for text outlines, enabling consistent application of text styles across various document elements like headers and emphasized text.

Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.