How to find and replace a specific text in paragraphs using C# and .NET

  1. Add SautinSoft.Document from Nuget.
  2. Load a document.
  3. Iterate through all paragraphs.
  4. Find and replace text in the each paragraph.
  5. Save the document.

This code example shows us how to replace the text 'old text' with the text 'new text' in all paragraphs of the document.

Complete code

using System;
using System.IO;
using System.Linq;
using SautinSoft.Document;

namespace Example
    class Program
        static void Main(string[] args)
            // Get your free 30-day key here:   

        /// <summary>
        /// Find and replace a specific text in all paragraphs in PDF document.
        /// </summary>
        /// <remarks>
        /// Details:
        /// </remarks>
        static void FindAndReplaceInParagraphs()
            string filePath = @"..\..\..\example.pdf";
            string fileResult = @"Result.pdf";
            DocumentCore dc = DocumentCore.Load(filePath);
            foreach (Paragraph par in dc.GetChildElements(true, ElementType.Paragraph))
                foreach (ContentRange item in par.Content.Find("old text").Reverse())
                    item.Replace("new text");
            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
    ''' Get your free 30-day key here:   
    ''' <summary>
    ''' Find and replace a specific text in all paragraphs in PDF document.
    ''' </summary>
    ''' <remarks>
    ''' Details:
    ''' </remarks>
    Private Sub FindAndReplaceInParagraphs()
        Dim filePath As String = "..\..\..\example.pdf"
        Dim fileResult As String = "Result.pdf"
        Dim dc As DocumentCore = DocumentCore.Load(filePath)
        For Each par As Paragraph In dc.GetChildElements(True, ElementType.Paragraph)
            For Each item As ContentRange In par.Content.Find("old text").Reverse()
                item.Replace("new text")
            Next item
        Next par
        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


If you need a new code example or have a question: email us at or ask at Online Chat (right-bottom corner of this page) or use the Form below:

Questions and suggestions from you are always welcome!

We are developing .Net components since 2002. We know PDF, DOCX, RTF, HTML, XLSX and Images formats. If you need any assistance with creating, modifying or converting documents in various formats, we can help you. We will write any code example for you absolutely free.