Find and Replace Content

This demo uses the DevExpress Word Processing Document API to find and replace content in a document. You can process the predefined sample file or supply your own document. To do the latter, select Upload a File in the file selection drop-down menu.

Specify the search text and required operation. Enter the replacement text or highlight color, if necessary. Click the Modify Document and Save as... dropdown button to select the output format, apply changes, and download the result.

Select a Document
Sample.docx



using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.API.Native;
using System.Drawing;

Stream FindReplace(Stream inputStream, string findText, SearchOptions searchOptions, string replaceText, DocumentFormat outputFormat) {
    using var wordProcessor = new RichEditDocumentServer();

    // Load document
    wordProcessor.LoadDocument(inputStream);
    var document = wordProcessor.Document;

    document.ReplaceAll(findText, replaceText, searchOptions);

    var outputStream = new MemoryStream();
    wordProcessor.SaveDocument(outputStream, outputFormat);
    return outputStream;
}

Stream FindRemove(Stream inputStream, string findText, SearchOptions searchOptions, DocumentFormat outputFormat) {
    using var wordProcessor = new RichEditDocumentServer();

    // Load document
    wordProcessor.LoadDocument(inputStream);
    var document = wordProcessor.Document;

    // Find all occurrences of the search text
    DocumentRange[] searchResults = document.FindAll(findText, searchOptions);

    // Remove found ranges
    for (int i = searchResults.Length - 1; i >= 0; i--)
        document.Delete(searchResults[i]);

    var outputStream = new MemoryStream();
    wordProcessor.SaveDocument(outputStream, outputFormat);
    return outputStream;
}

Stream FindHighlight(Stream inputStream, string findText, SearchOptions searchOptions, Color highlightColor, DocumentFormat outputFormat) {
    using var wordProcessor = new RichEditDocumentServer();

    // Load document
    wordProcessor.LoadDocument(inputStream);
    var document = wordProcessor.Document;

    // Find all occurrences of the search text
    DocumentRange[] searchResults = document.FindAll(findText, searchOptions);

    // Apply highlight color to found ranges
    foreach (var range in searchResults) {
        var charProps = document.BeginUpdateCharacters(range);
        charProps.BackColor = highlightColor;
        document.EndUpdateCharacters(charProps);
    }

    var outputStream = new MemoryStream();
    wordProcessor.SaveDocument(outputStream, outputFormat);
    return outputStream;
}