ReplaceTextFmt.cs
- //
- // This code is part of Document Solutions for Word demos.
- // Copyright (c) MESCIUS inc. All rights reserved.
- //
- using System;
- using System.IO;
- using System.Drawing;
- using System.Text;
- using System.Linq;
- using System.Collections.Generic;
- using System.Text.RegularExpressions;
- using GrapeCity.Documents.Word;
-
- namespace DsWordWeb.Demos
- {
- // This sample shows how to replace all occurrences of a string
- // in a DOCX document (see JsFrameworkExcerpt) using the
- // RangeBase.Replace extension method provided by the
- // RangeBaseFindReplaceExtensions class.
- // This sample is similar to ReplaceText, with the addition of
- // also updating the replacement's style.
- public class ReplaceTextFmt
- {
- public GcWordDocument CreateDocx()
- {
- // The document to replace text in:
- var path = Path.Combine("Resources", "WordDocs", "JsFrameworkExcerpt.docx");
- // The text to find:
- const string tFind = "javascript";
- // The replacement:
- const string tRepl = "ArabicaScroll";
- // Name for the replacement's style:
- const string styleName = "my new style";
-
- // Load the source document:
- var doc = new GcWordDocument();
- doc.Load(path);
-
- // The new style for replaced text:
- var style = doc.Styles.Add(styleName, StyleType.Character);
- style.Font.Color.RGB = Color.Red;
-
- // Replace text and replacements' style:
- var nreplacements = doc.Body.Replace(tFind, tRepl,
- new FindReplaceOptions(doc)
- {
- IgnoreCase = true,
- ReplacedCallback = (args_) => args_.ReplacedRange.Runs.ToList().ForEach(r_ => r_.Style = style)
- });
-
- // Add a note at the end of the document:
- doc.Body.Sections.Last.GetRange().Paragraphs.Add(
- $"DsWord replaced {nreplacements} occurrences of '{tFind}' with '{tRepl}' on {Util.TimeNow():R}.");
-
- // Done:
- return doc;
- }
- }
- }
-