Spire.Doc

It is a little bothered to find specified text, phrase or sentence in a Word document with a large amount of contents. Therefore, the function, which enables users to find text in Word document quickly, is import and necessary. What's more, the found texts will be highlighted with a background color so that users can confirm the location more conveniently.

Spire.Doc for .NET, a professional .NET Word component, enables developers to find and highlight text in Word on their .NET applications. This guide focuses on showing the solution to find and highlight text in Word by using C#, VB.NET. Please have a look at the following screenshot, which presents the result you can get.

Find and Highlight Word Text

Download and install Spire.Doc for .NET. Load document which you want to find and highlight text. Then, invoke document.FindAllString(string, bool caseSensitive, bool wholeWord) method to find text “forming” in document. Next, save the found string in a TextSelection array. Use foreach sentence to set HighlightColor property for each selection in TextSelection array. Code as following

[C#]
using System.Drawing;
using Spire.Doc;
using Spire.Doc.Documents;

namespace WordImage
{
    class ImageinWord
    {
        static void Main(string[] args)
        {
            //Create Document
            Document document = new Document();
            document.LoadFromFile(@"E:\Work\Documents\WordDocuments\References.docx");

            TextSelection[] text = document.FindAllString("forming", false, true);
            foreach (TextSelection seletion in text)
            {
                seletion.GetAsOneRange().CharacterFormat.HighlightColor = Color.Yellow;
            }

            document.SaveToFile("FindHighlight.docx", FileFormat.Docx);
            System.Diagnostics.Process.Start("FindHighlight.docx");
        }
    }
}
[VB.NET]
Imports System.Drawing
Imports Spire.Doc
Imports Spire.Doc.Documents

Namespace WordImage
    Friend Class ImageinWord
        Shared Sub Main(ByVal args() As String)
            'Create Document
            Dim document As New Document()
            document.LoadFromFile("E:\Work\Documents\WordDocuments\References.docx")

            Dim text() As TextSelection = document.FindAllString("forming", False, True)
            For Each seletion As TextSelection In text
                seletion.GetAsOneRange().CharacterFormat.HighlightColor = Color.Yellow
            Next seletion

            document.SaveToFile("FindHighlight.docx", FileFormat.Docx)
            System.Diagnostics.Process.Start("FindHighlight.docx")
        End Sub
    End Class
End Namespace

Spire.Doc, a stand-alone Word component, which enables users to perform a wide range of Word document processing tasks with a fast speed such as generate, read, write and modify Word document in WPF, .NET and Silverlight without MS Word automation.

Word Heading can be taken as title of each part in Word document. This guide demonstrates solution to manage these Word headings and form them as a catalogue in C# and VB.NET.

In Word document, users can set some contents, for example, phrases of summary of the following paragraphs, as headings. These Word headings can be displayed in the first page of whole document and form as catalogue after arrangement so that readers can get outline of whole document. Solution in this guide presents how to manage Word headings with numbered style in a new created document in C# and VB.NET via Spire.Doc for .NET and screenshot below shows results of managing Word headings.

Word Paragraph Headings

Heading is one of kind of styles for paragraphs and Spire.Doc for .NET provides several BuiltinStyle types for paragraphs. In this example, three BuiltinStyle types will be applied: Heading1, Heading2 and Heading3. Following, details will be presented step by step.

Firstly, initialize a Document instance and add section, paragraph for this instance. Secondly, invoke AppendText method with parameter string text and ApplyStyle(BuiltinStyle.Heading1) method of Paragraph class to add text and set heading style for new added paragraph. Then, invoke ListFromat.ApplyNumberedStyle() method of Paragraph class to set number list for it. Thirdly, add new paragraph and set Heading2 style for it as the previous step. Initialize a ListStyle instance for document with Numbered ListType. Then, initialize a ListLevel instance from ListStyle and set UsePrevLevelPattern and NumberPrefix properties for this instance. After that, invoke ListStyleCollection.Add(ListStyle) method of Document class and ListFormat.ApplyStyle method of Paragraph class with parameter string styleName to add ListStyle for Heading2. Fourthly, add a new paragraph and set BuiltinStyle as Heading3 and apply ListStyle for this paragraph as the previous step. Finally, invoke SaveToFile method of Document class with parameter string fileName and FileFormat to save this document. Refer the code:

[C#]
using Spire.Doc;
using Spire.Doc.Documents;

namespace WordHeading
{
    class Heading
    {
        static void Main(string[] args)
        {
            //Create Document
            Document document = new Document();
            Section section = document.AddSection();
            Paragraph paragraph
                = section.Paragraphs.Count > 0 ? section.Paragraphs[0] : section.AddParagraph();

            //Add Heading 1
            paragraph = section.AddParagraph();
            paragraph.AppendText(BuiltinStyle.Heading1.ToString());
            paragraph.ApplyStyle(BuiltinStyle.Heading1);
            paragraph.ListFormat.ApplyNumberedStyle();

            //Add Heading 2
            paragraph = section.AddParagraph();
            paragraph.AppendText(BuiltinStyle.Heading2.ToString());
            paragraph.ApplyStyle(BuiltinStyle.Heading2);

            //List Style for Headings 2
            ListStyle listSty2 = new ListStyle(document, ListType.Numbered);
            foreach (ListLevel listLev in listSty2.Levels)
            {
                listLev.UsePrevLevelPattern = true;
                listLev.NumberPrefix = "1.";
            }
            listSty2.Name = "MyStyle2";
            document.ListStyles.Add(listSty2);
            paragraph.ListFormat.ApplyStyle(listSty2.Name);
            
            //Add List Style 3
            ListStyle listSty3 = new ListStyle(document, ListType.Numbered);
            foreach (ListLevel listLev in listSty3.Levels)
            {
                listLev.UsePrevLevelPattern = true;
                listLev.NumberPrefix = "1.1.";
            }
            listSty3.Name = "MyStyle3";
            document.ListStyles.Add(listSty3);

            //Add Heading 3
            for (int i = 0; i < 4; i++)
            {
                paragraph = section.AddParagraph();

                //Append Text
                paragraph.AppendText(BuiltinStyle.Heading3.ToString());

                //Apply List Style 3 for Heading 3
                paragraph.ApplyStyle(BuiltinStyle.Heading3);
                paragraph.ListFormat.ApplyStyle(listSty3.Name);
            }

            //Save and Launch
            document.SaveToFile("Word Headings.docx", FileFormat.Docx);
            System.Diagnostics.Process.Start("Word Headings.docx");   
        }
    }
}
[VB.NET]
Imports Spire.Doc
Imports Spire.Doc.Documents

Namespace WordHeading
    Friend Class Heading
        Shared Sub Main(ByVal args() As String)
            'Create Document
            Dim document As New Document()
            Dim section As Section = document.AddSection()
            Dim paragraph As Paragraph = If(section.Paragraphs.Count > 0, section.Paragraphs(0), section.AddParagraph())

            'Add Heading 1
            paragraph = section.AddParagraph()
            paragraph.AppendText(BuiltinStyle.Heading1.ToString())
            paragraph.ApplyStyle(BuiltinStyle.Heading1)
            paragraph.ListFormat.ApplyNumberedStyle()

            'Add Heading 2
            paragraph = section.AddParagraph()
            paragraph.AppendText(BuiltinStyle.Heading2.ToString())
            paragraph.ApplyStyle(BuiltinStyle.Heading2)

            'List Style for Headings 2
            Dim listSty2 As New ListStyle(document, ListType.Numbered)
            For Each listLev As ListLevel In listSty2.Levels
                listLev.UsePrevLevelPattern = True
                listLev.NumberPrefix = "1."
            Next listLev
            listSty2.Name = "MyStyle2"
            document.ListStyles.Add(listSty2)
            paragraph.ListFormat.ApplyStyle(listSty2.Name)

            'Add List Style 3
            Dim listSty3 As New ListStyle(document, ListType.Numbered)
            For Each listLev As ListLevel In listSty3.Levels
                listLev.UsePrevLevelPattern = True
                listLev.NumberPrefix = "1.1."
            Next listLev
            listSty3.Name = "MyStyle3"
            document.ListStyles.Add(listSty3)

            'Add Heading 3
            For i As Integer = 0 To 3
                paragraph = section.AddParagraph()

                'Append Text
                paragraph.AppendText(BuiltinStyle.Heading3.ToString())

                'Apply List Style 3 for Heading 3
                paragraph.ApplyStyle(BuiltinStyle.Heading3)
                paragraph.ListFormat.ApplyStyle(listSty3.Name)
            Next i

            'Save and Launch
            document.SaveToFile("Word Headings.docx", FileFormat.Docx)
            System.Diagnostics.Process.Start("Word Headings.docx")
        End Sub
    End Class
End Namespace

Spire.Doc, as professional Word component, is very powerful on fast generating, loading, writing, modifying and saving Word documents in .NET, WPF, Silverlight without Word automation and any third party tools.

This document aims at clearly introducing a simple “HelloWorld” demo about Spire.Doc for WPF by using Visual Studio. The below procedure will help you realize this task step by step. Before getting started, please make sure that Spire.Doc for WPF and Visual Studio are correctly installed on system.

Step 1. Create a new project.

1. Create a new project by choosing WPF Application in Visual Studio and name the project "HelloWorld". If you want to create a C# project, select Visual C#, WPF Application, if you want to build a Visual Basic project, please choose Visual Basic, WPF Application. The detail process is:

Click File → NewProjectWPF ApplicationNameOK

2. Set the Target framework property of the HelloWorld project in Solution Explorer to be .NET Framework 4.The process is:

Click Solution ExplorerHelloWorld (The project that you already built)Properties(right click HelloWorld)Target framework.NET Framework 4

3. Add a button in MainWindow. The default button name is "button1". You can set button1 Content property to be "Run" in its properties by right clicking it. Thus, it shows "Run" in the MainWindow. You can perform as below:

Click ViewToolboxButtonProperties (right click button1)Contentset the Content to be "Run"

Step 2. Add reference and project namespaces.

1. Add Spire.Doc. Wpf.dll as reference in Project. The Default location of Spire.Doc for WPF is “C:\Program Files\e-iceblue\Spire.Doc for WPF”. Details are:

Click ProjectAdd ReferenceBrowseChoose the folder contains Spire.Doc for WPFBinWPF 4.0Spire.Doc.Wpf.dll

2. Double click the "Run" button, you can see the following method has been added automatically:

[C#]
namespace HelloWorld
{
    /// 
    /// Interaction logic for MainWindow.xaml
    /// 
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

private void button1_Click(object sender, RoutedEventArgs e)
        {
        }
    }
}
[VB.NET]
Namespace HelloWorld
	''' 
	''' Interaction logic for MainWindow.xaml
	''' 
	Public Partial Class MainWindow
		Inherits Window
		Public Sub New()
			InitializeComponent()
		End Sub

		Private Sub button1_Click(sender As Object, e As RoutedEventArgs)
                End Sub
	End Class
End Namespace

3. Add the below namespaces at the top of the method.

[C#]
using Spire.Doc;
using Spire.Doc.Documents;
[VB.NET]
Imports Spire.Doc
Imports Spire.Doc.Documents

Step 3. Write "Hello, World!” in the method.

Add the following code to the method button1_click

[C#]
            //create a new document using spire.Doc
            Document document = new Document();

            //add one paragraph 
            Paragraph paragraph = document.AddSection().AddParagraph();
            paragraph.AppendText("Hello, World!");

            //save the document
            document.SaveToFile(@"..\..\sample.doc", FileFormat.Doc);

            //launch the document
            System.Diagnostics.Process.Start(@"..\..\sample.doc");
[VB.NET]
	  'create a new document using spire.Doc
	   Dim document As New Document()

	  'add one paragraph 
	   Dim paragraph As Paragraph = document.AddSection().AddParagraph()
	   paragraph.AppendText("Hello, World!")

	  'save the document
	   document.SaveToFile("..\..\sample.doc", FileFormat.Doc)

	   'launch the document
	   System.Diagnostics.Process.Start("..\..\sample.doc")

Step 4. Debug the project

Right click the project HelloWorld in Solution ExplorerDebug-> Start new instanceClick Run in MainWindow, a Word Document will be created, edited and opened. The string “Hello, World!” is drawn in the first line of page1.

Preview