Document .Net - Replace Text

How to replace a specific text in an existing DOCX document using C# and VB.Net

This code example shows how to replace the text 'document' by the 'book' text in a document

Complete code

using System.Linq;
using SautinSoft.Document;

namespace Example
    class Program
        static void Main(string[] args)
        /// <summary>
        /// Replace a specific text in an existing DOCX document.
        /// </summary>
        /// </remarks>
        /// Details:
        /// </remarks>
        static void ReplaceText()
            string filePath = @"..\..\example.docx";
            string fileResult = @"Result.docx";
            string searchText = "document";
            string replaceText = "book";
            DocumentCore dc = DocumentCore.Load(filePath);
            foreach (ContentRange cr in dc.Content.Find(searchText).Reverse())
                // Replace "document" to "book";
                // Mark "book" by yellow.
                cr.Replace(replaceText, new CharacterFormat() { BackgroundColor = Color.Yellow});
            System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(filePath) { UseShellExecute = true });
            System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(fileResult) { UseShellExecute = true });



            Imports System
Imports System.IO
Imports System.Linq
Imports SautinSoft.Document

Module Sample
    Sub Main()
    End Sub

    ''' <summary>
    ''' Replace a specific text in an existing DOCX document.
    ''' </summary>
    ''' </remarks>
    ''' Details:
    ''' </remarks>
    Sub ReplaceText()
        Dim filePath As String = "..\example.docx"
        Dim fileResult As String = "Result.docx"
        Dim searchText As String = "document"
        'INSTANT VB NOTE: The variable replaceText was renamed since Visual Basic does not handle local variables named the same as class members well:
        Dim replaceText_Renamed As String = "book"
        Dim dc As DocumentCore = DocumentCore.Load(filePath)
        For Each cr As ContentRange In dc.Content.Find(searchText).Reverse()
            ' Replace "document" to "book";
            ' Mark "book" by yellow.
            cr.Replace(replaceText_Renamed, New CharacterFormat() With {.BackgroundColor = Color.Yellow})
        Next cr
        System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(filePath) With {.UseShellExecute = True})
        System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(fileResult) With {.UseShellExecute = True})

    End Sub
End Module


© SautinSoft 2002 - 2019