Knowledgebase (2328)
Children categories
When creating a new Word document, setting the appropriate fonts is crucial for establishing tone and enhancing readability. Fonts influence how your content is perceived, whether for formal reports, creative projects, or casual notes. By selecting the right typeface and size, you can ensure your document is not only visually appealing but also effective in communicating your message.
In this article, you will learn how to set fonts when creating a new Word document in C# using Spire.Doc for .NET.
- Set the Font for a Paragraph in C#
- Apply Different Fonts to Text in C#
- Use a Custom Font in a Word Document in C#
Install Spire.Doc for .NET
To begin with, you need to add the DLL files included in the Spire.Doc for.NET package as references in your .NET project. The DLL files can be either downloaded from this link or installed via NuGet.
PM> Install-Package Spire.Doc
Set the Font for a Paragraph in C#
Setting fonts is a fundamental task when working with Word documents in C#. Spire.Doc offers the ParagraphStyle class, which lets you specify font family, size, style, and text color. Once you've created a style, you can apply it to format a paragraph with the desired settings.
The detailed steps to set the font for a paragraph using C# are as follows:
- Create a Document object.
- Add a section and a paragraph to the document.
- Append text to the paragraph.
- Create a ParagraphStyle object.
- Get the CharacterFormat object through the ParagraphStyle.CharacterFormat property.
- Set the font style, name, size and text color using the properties under the CharacterFormat object.
- Add the style to the document using the Document.Styles.Add() method.
- Apply the defined style to the paragraph using the Paragraph.ApplyStyle() method.
- Save the document to a Word file.
Here is an example that demonstrates how to set the font for a paragraph when creating a new Word document in C#:
- C#
using Spire.Doc;
using Spire.Doc.Documents;
using System.Drawing;
namespace SetFontForParagraph
{
class Program
{
static void Main(string[] args)
{
// Create a Document object
Document doc = new Document();
// Add a section
Section section = doc.AddSection();
// Set the page margins
section.PageSetup.Margins.All = 40f;
// Add a paragraph
Paragraph paragraph = section.AddParagraph();
// Append text to the paragraph
paragraph.AppendText("Spire.Doc for .NET is a powerful library designed for developers " +
"working with document processing in the .NET environment. It enables users to create, " +
"read, modify, and convert various types of document formats, such as DOC, DOCX, PDF, " +
"and more, without the need for Microsoft Office installed on the machine.");
// Create a ParagraphStyle object
ParagraphStyle style = new ParagraphStyle(doc);
// Set the style name
style.Name = "myStyle";
// Set the font style, name, size and text color
style.CharacterFormat.Bold = false;
style.CharacterFormat.TextColor = Color.Black;
style.CharacterFormat.FontName = "Times New Roman";
style.CharacterFormat.FontSize = 14;
// Add the style the document
doc.Styles.Add(style);
// Apply the style to the paragraph
paragraph.ApplyStyle(style.Name);
// Set the horizontal alignment
paragraph.Format.HorizontalAlignment = HorizontalAlignment.Left;
// Save the document to a docx file
doc.SaveToFile("SetFont.docx", FileFormat.Docx2019);
// Dispose resources
doc.Dispose();
}
}
}

Apply Different Fonts to Text in C#
In some cases, you may need to apply various fonts to different segments of the same paragraph. Spire.Doc offers the TextRange class, which allows you to assign distinct styles to specific text ranges within a paragraph. To do this, ensure that the text requiring different styles is organized into separate text ranges.
The steps to apply multiple fonts in a paragraph using C# are as follows:
- Create a Document object.
- Add a section and a paragraph to the document.
- Append text to the paragraph using the Paragraph.AppendText() method, which returns a TextRange object.
- Append more text that needs to be styled differently to the paragraph and return different TextRange objects.
- Create a ParagraphStyle object with the basic font information and apply it to the paragraph.
- Change the font name, style, size and text color of the specified text range using the properties under the specific TextRange object.
- Save the document to a Word file.
Here's an example that demonstrates how to apply different fonts to different parts of a paragraph:
- C#
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.Drawing;
namespace ApplyDifferentFontsToText
{
class Program
{
static void Main(string[] args)
{
// Create a Document object
Document doc = new Document();
// Add a section
Section section = doc.AddSection();
// Set the page margins
section.PageSetup.Margins.All = 40f;
// Add a paragraph
Paragraph paragraph = section.AddParagraph();
// Append text to the paragraph
TextRange textRange1 = paragraph.AppendText("Spire.Doc for .NET");
TextRange textRange2 = paragraph.AppendText(" is a powerful library designed for developers " +
"working with document processing in the .NET environment. It enables users to ");
TextRange textRange3 = paragraph.AppendText("create, read, modify, and convert");
TextRange textRange4 = paragraph.AppendText(" various types of document formats, such as ");
TextRange textRange5 = paragraph.AppendText("DOC, DOCX, PDF");
TextRange textRange6 = paragraph.AppendText(" and more, without the need for Microsoft Office installed on the machine.");
// Create a ParagraphStyle object
ParagraphStyle style = new ParagraphStyle(doc);
// Set the style name
style.Name = "myStyle";
// Set the font style, name, size and text color
style.CharacterFormat.Bold = false;
style.CharacterFormat.TextColor = Color.Black;
style.CharacterFormat.FontName = "Times New Roman";
style.CharacterFormat.FontSize = 14;
// Add the style the document
doc.Styles.Add(style);
// Apply the style to the paragraph
paragraph.ApplyStyle(style.Name);
// Change the font style of the specified text ranges
textRange1.CharacterFormat.Bold = true;
textRange1.CharacterFormat.TextColor = Color.Purple;
textRange3.CharacterFormat.Bold = true;
textRange3.CharacterFormat.TextColor = Color.Purple;
textRange5.CharacterFormat.Bold = true;
textRange5.CharacterFormat.TextColor = Color.Purple;
// Set the horizontal alignment
paragraph.Format.HorizontalAlignment = HorizontalAlignment.Left;
// Save the document to a docx file
doc.SaveToFile("ApplyDifferentFonts.docx", FileFormat.Docx2019);
// Dispose resources
doc.Dispose();
}
}
}

Use a Custom Font in a Word Document in C#
Spire.Doc supports custom fonts, allowing you to use fonts that are not installed on the system where the application is running. To use a custom font, you need to embed the font file in your application and then specify it in your code.
The steps to utilize custom fonts in a Word document are as follows:
- Create a Document object.
- Add a section and a paragraph to the document.
- Append text to the paragraph.
- Set the custom fonts for the document using the Document.SetCustomFonts() method.
- Embed fonts in the generated file by setting the Document.EmbedFontsInFile property to true.
- Create a ParagraphStyle object.
- Set the font name to your custom font using the ParagraphStyle.CharacterFormat.FontName property.
- Apply the style to the paragraph using the Paragraph.ApplyStyle() method.
- Save the document to a Word file.
Here's an example that demonstrates how to use a custom font:
- C#
using Spire.Doc;
using Spire.Doc.Documents;
using System.Drawing;
namespace SetFontForParagraph
{
class Program
{
static void Main(string[] args)
{
// Create a Document object
Document doc = new Document();
// Add a section
Section section = doc.AddSection();
// Set the page margins
section.PageSetup.Margins.All = 40f;
// Add a paragraph
Paragraph paragraph = section.AddParagraph();
// Append text to the paragraph
paragraph.AppendText("Spire.Doc for .NET is a powerful library designed for developers " +
"working with document processing in the .NET environment. It enables users to create, " +
"read, modify, and convert various types of document formats, such as DOC, DOCX, PDF, " +
"and more, without the need for Microsoft Office installed on the machine.");
// Specify the private font path
string fontPath = "C:\\Users\\Administrator\\Desktop\\Super Morning.ttf";
// Create an array of Stream objects to hold the font streams
Stream[] fontStreams = new Stream[1];
fontStreams[0] = new FileStream(fontPath, FileMode.Open, FileAccess.Read);
// Set the custom fonts for the document
doc.SetCustomFonts(fontStreams);
// Embed fonts in the generated file
doc.EmbedFontsInFile = true;
// Create a ParagraphStyle object
ParagraphStyle style = new ParagraphStyle(doc);
// Set the paragraph style name
style.Name = "myStyle";
// Set the font name as the name of the private font
style.CharacterFormat.FontName = "Super Morning";
// Set the font style, size and text color
style.CharacterFormat.Bold = false;
style.CharacterFormat.TextColor = Color.Black;
style.CharacterFormat.FontSize = 14;
// Add the style the document
doc.Styles.Add(style);
// Apply the defined style to the paragraph
paragraph.ApplyStyle(style.Name);
// Set the horizontal alignment
paragraph.Format.HorizontalAlignment = HorizontalAlignment.Left;
// Save the document to a docx file
doc.SaveToFile("UseCustomFont.docx", FileFormat.Docx2019);
// Dispose resources
doc.Dispose();
}
}
}

Apply for a Temporary License
If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.
If you want to emphasize a specific paragraph or text in your Word document, you can change its font color. This article will demonstrate how to change font color in Word in C# and VB.NET using Spire.Doc for .NET library.
Install Spire.Doc for .NET
To begin with, you need to add the DLL files included in the Spire.Doc for .NET package as references in your .NET project. The DLL files can be either downloaded from this link or installed via NuGet.
PM> Install-Package Spire.Doc
Change Font Color of a Paragraph in C# and VB.NET
The following are the steps to change the font color of a paragraph in a Word document:
- Create a Document instance.
- Load the Word document using Document.LoadFromFile() method.
- Get the desired section using Document.Sections[sectionIndex] property.
- Get the desired paragraph that you want to change the font color of using Section.Paragraphs[paragraphIndex] property.
- Create a ParagraphStyle instance.
- Set the style name and font color using ParagraphStyle.Name and ParagraphStyle.CharacterFormat.TextColor properties.
- Add the style to the document using Document.Styles.Add() method.
- Apply the style to the paragraph using Paragraph.ApplyStyle() method.
- Save the result document using Document.SaveToFile() method.
- C#
- VB.NET
using Spire.Doc;
using Spire.Doc.Documents;
using System.Drawing;
namespace ChangeFontColorForParagraph
{
class Program
{
static void Main(string[] args)
{
//Create a Document instance
Document document = new Document();
//Load a Word document
document.LoadFromFile("Sample.docx");
//Get the first section
Section section = document.Sections[0];
//Change text color of the first Paragraph
Paragraph p1 = section.Paragraphs[0];
ParagraphStyle s1 = new ParagraphStyle(document);
s1.Name = "Color1";
s1.CharacterFormat.TextColor = Color.RosyBrown;
document.Styles.Add(s1);
p1.ApplyStyle(s1.Name);
//Change text color of the second Paragraph
Paragraph p2 = section.Paragraphs[1];
ParagraphStyle s2 = new ParagraphStyle(document);
s2.Name = "Color2";
s2.CharacterFormat.TextColor = Color.DarkBlue;
document.Styles.Add(s2);
p2.ApplyStyle(s2.Name);
//Save the result document
document.SaveToFile("ChangeParagraphTextColor.docx", FileFormat.Docx);
}
}
}

Change Font Color of a Specific Text in C# and VB.NET
The following are the steps to change the font color of a specific text in a Word document:
- Create a Document instance.
- Load a Word document using Document.LoadFromFile() method.
- Find the text that you want to change font color of using Document.FindAllString() method.
- Loop through all occurrences of the searched text and change the font color for each occurrence using TextSelection.GetAsOneRange().CharacterFormat.TextColor Property.
- Save the result document using Document.SaveToFile() method.
- C#
- VB.NET
using Spire.Doc;
using Spire.Doc.Documents;
using System.Drawing;
namespace ChangeFontColorForText
{
class Program
{
static void Main(string[] args)
{
//Create a Document instance
Document document = new Document();
//Load a Word document
document.LoadFromFile("Sample.docx");
//Find the text that you want to change font color for
TextSelection[] text = document.FindAllString("Spire.Doc for .NET", false, true);
//Change the font color for the searched text
foreach (TextSelection seletion in text)
{
seletion.GetAsOneRange().CharacterFormat.TextColor = Color.Red;
}
//Save the result document
document.SaveToFile("ChangeCertainTextColor.docx", FileFormat.Docx);
}
}
}

Apply for a Temporary License
If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.
When it comes to editing documents, making changes to the text is a common task. Microsoft Word provides a robust feature called "Find and Replace" that streamlines the text editing process. With this feature, you can effortlessly locate specific words, phrases, or characters within your document and replace them in one simple action. This eliminates the need for repetitive manual searching and time-consuming edits, saving you valuable time and effort, especially when you need to make widespread changes in lengthy documents. In this article, we will explain how to find and replace text in Word documents in C# using Spire.Doc for .NET.
- Find Text and Replace All Its Instances with New Text
- Find Text and Replace Its First Instance with New Text
- Find and Replace Text with Image
- Find and Replace Text using Regular Expression
- Find and Replace Text with Content from Another Word Document
Install Spire.Doc for .NET
To begin with, you need to add the DLL files included in the Spire.Doc for .NET package as references in your .NET project. The DLL files can be either downloaded from this link or installed via NuGet.
PM> Install-Package Spire.Doc
Find Text and Replace All Its Instances with New Text
Spire.Doc for .NET provides the Document.Replace() method that enables you to find and replace specific text in a Word document. With this method, you can seamlessly replace all instances of the target text with new content. Additionally, you have the flexibility to specify whether the search should be case-sensitive and whether whole-word matching should be considered. The detailed steps are as follows.
- Instantiate an object of the Document class.
- Load a sample Word document using Document.LoadFromFile() method.
- Replace all instances of specific text with new text using Document.Replace(string matchString, string newValue, bool caseSensitive, bool wholeWord) method.
- Save the result document using Document.SaveToFile() method.
- C#
using Spire.Doc;
namespace ReplaceAllText
{
internal class Program
{
static void Main(string[] args)
{
//Instantiate an object of the Document class
Document document = new Document();
//Load a sample Word document
document.LoadFromFile("Sample.docx");
//Replace all instances of specific text with new text
document.Replace("Spire.Doc", "Eiceblue", false, true);
//Save the result document
document.SaveToFile("ReplaceAllText.docx", FileFormat.Docx2016);
document.Close();
}
}
}

Find Text and Replace Its First Instance with New Text
To replace the first instance of a specific text in a Word document using Spire.Doc for .NET, you can utilize the Document.ReplaceFirst property. By setting this property to true before calling the Document.Replace() method, you can change the text replacement mode to exclusively replace the first instance. The detailed steps are as follows.
- Instantiate an object of the Document class.
- Load a sample Word document using Document.LoadFromFile() method.
- Change the text replacement mode to replace the first instance only by setting the Document.ReplaceFirst property to true.
- Call the Document.Replace(string matchString, string newValue, bool caseSensitive, bool wholeWord) method to replace text.
- Save the result document using Document.SaveToFile() method.
- C#
using Spire.Doc;
namespace ReplaceFirstText
{
internal class Program
{
static void Main(string[] args)
{
//Instantiate an object of the Document class
Document document = new Document();
//Load a sample Word document
document.LoadFromFile("Sample.docx");
//Change the text replacement mode to replace the first instance only
document.ReplaceFirst = true;
//Replace the first instance of specific text with new text
document.Replace("Spire.Doc", "Eiceblue", false, true);
//Save the result document
document.SaveToFile("ReplaceFirstText.docx", FileFormat.Docx2016);
document.Close();
}
}
}
Find and Replace Text with Image
Sometimes, you may need to replace text with images for visual representation or design purposes. In Spire.Doc for .NET, replacing text with image can be achieved by inserting the image at the position of the target text and then removing the text from the document. The detailed steps are as follows.
- Instantiate an object of the Document class.
- Load a sample Word document using Document.LoadFromFile() method.
- Find specific text in the document using Document.FindAllString() method.
- Loop through the matched text.
- For each matched text, get the paragraph where it is located and get the position of the text in the paragraph.
- Instantiate an object of the DocPicture class, and then load an image using DocPicture.LoadImage() method.
- Insert the image into the paragraph at the position of the text and then remove the text from the paragraph.
- Save the result document using Document.SaveToFile() method.
- C#
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
namespace ReplaceTextWithImage
{
internal class Program
{
static void Main(string[] args)
{
//Instantiate an object of the Document class
Document document = new Document();
//Load a sample Word document
document.LoadFromFile("Sample.docx");
//Find specific text in the document
TextSelection[] selections = document.FindAllString("Spire.Doc", true, true);
int index = 0;
Paragraph ownerParagraph = null;
//Loop through the matched text
foreach (TextSelection selection in selections)
{
//Get the paragraph where the text is located
ownerParagraph = selection.GetAsOneRange().OwnerParagraph;
//Get the index position of the text in the paragraph
index = ownerParagraph.ChildObjects.IndexOf(selection.GetAsOneRange());
//Load an image
DocPicture pic = new DocPicture(document);
pic.LoadImage("img.png");
//Insert the image into the paragraph at the index position of the text
ownerParagraph.ChildObjects.Insert(index, pic);
//Remove the text from the paragraph
ownerParagraph.ChildObjects.Remove(selection.GetAsOneRange());
}
//Save the result document
document.SaveToFile("ReplaceTextWithImage.docx", FileFormat.Docx2016);
document.Close();
}
}
}

Find and Replace Text using Regular Expression
Regular expressions offer a robust toolset for performing complex search and replace operations within documents. The Document.Replace() method can leverage regular expressions to search for specific text, allowing you to perform advanced search and replace operations based on specific criteria. The detailed steps are as follows.
- Instantiate an object of the Document class.
- Load a sample Word document using Document.LoadFromFile() method.
- Instantiate an object of the Regex class to match text based on specific criteria.
- Replace the matched text with new text using Document.Replace(Regex pattern, string replace) method.
- Save the resulting document using Document.SaveToFile() method.
- C#
using Spire.Doc;
using System.Text.RegularExpressions;
namespace ReplaceTextWithRegex
{
internal class Program
{
static void Main(string[] args)
{
//Instantiate an object of the Document class
Document document = new Document();
//Load a sample Word document
document.LoadFromFile("Sample.docx");
//Create a regex to match the text that starts with #
Regex regex = new Regex(@"\#\w+\b");
//Replace the matched text with new text
document.Replace(regex, "Spire.Doc");
//Save the result document
document.SaveToFile("ReplaceTextWithRegex.docx", FileFormat.Docx2016);
document.Close();
}
}
}
Find and Replace Text with Content from Another Word Document
In addition to replacing text with new text or image, Spire.Doc for .NET also enables you to replace text with content from another Word document. This can be beneficial when you are working on a predefined Word template and need to incorporate contents from other Word documents into it. The detailed steps are as follows.
- Instantiate an object of the Document class.
- Load a sample Word document using Document.LoadFromFile() method.
- Load another Word document into an IDocument object.
- Replace specific text in the sample document with content from another document using Document.Replace(string matchString, IDocument matchDoc, bool caseSensitive, bool wholeWord) method.
- Save the result document using Document.SaveToFile() method.
- C#
using Spire.Doc;
using Spire.Doc.Interface;
namespace ReplaceTextWithDocument
{
internal class Program
{
static void Main(string[] args)
{
//Instantiate an object of the Document class
Document document = new Document();
//Load a sample Word document
document.LoadFromFile("Template.docx");
//Load another Word document
IDocument document1 = new Document("Report.docx");
//Replace specific text in the sample document with content from another document
document.Replace("Annual Sales", document1, false, true);
//Save the result document
document.SaveToFile("ReplaceTextWithDocument.docx", FileFormat.Docx2016);
document.Close();
}
}
}
Apply for a Temporary License
If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.