diff --git a/Find-and-Replace/Find-and-replace-merge-field-name/.NET/Find-and-replace-merge-field-name.sln b/Find-and-Replace/Find-and-replace-merge-field-name/.NET/Find-and-replace-merge-field-name.sln new file mode 100644 index 000000000..b4be5cd24 --- /dev/null +++ b/Find-and-Replace/Find-and-replace-merge-field-name/.NET/Find-and-replace-merge-field-name.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31911.196 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Find-and-replace-merge-field-name", "Find-and-replace-merge-field-name\Find-and-replace-merge-field-name.csproj", "{C17B90BC-F559-456B-B189-90B53FF6CDD4}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C17B90BC-F559-456B-B189-90B53FF6CDD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C17B90BC-F559-456B-B189-90B53FF6CDD4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C17B90BC-F559-456B-B189-90B53FF6CDD4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C17B90BC-F559-456B-B189-90B53FF6CDD4}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {EF357FC6-E9E5-4E3C-B932-43F727BE1DE4} + EndGlobalSection +EndGlobal diff --git a/Find-and-Replace/Find-and-replace-merge-field-name/.NET/Find-and-replace-merge-field-name/Data/Template.docx b/Find-and-Replace/Find-and-replace-merge-field-name/.NET/Find-and-replace-merge-field-name/Data/Template.docx new file mode 100644 index 000000000..246929df9 Binary files /dev/null and b/Find-and-Replace/Find-and-replace-merge-field-name/.NET/Find-and-replace-merge-field-name/Data/Template.docx differ diff --git a/Find-and-Replace/Find-and-replace-merge-field-name/.NET/Find-and-replace-merge-field-name/Find-and-replace-merge-field-name.csproj b/Find-and-Replace/Find-and-replace-merge-field-name/.NET/Find-and-replace-merge-field-name/Find-and-replace-merge-field-name.csproj new file mode 100644 index 000000000..52a308995 --- /dev/null +++ b/Find-and-Replace/Find-and-replace-merge-field-name/.NET/Find-and-replace-merge-field-name/Find-and-replace-merge-field-name.csproj @@ -0,0 +1,22 @@ + + + + Exe + net8.0 + Find_and_replace_merge_field_name + + + + + + + + + Always + + + Always + + + + diff --git a/Find-and-Replace/Find-and-replace-merge-field-name/.NET/Find-and-replace-merge-field-name/Output/.gitkeep b/Find-and-Replace/Find-and-replace-merge-field-name/.NET/Find-and-replace-merge-field-name/Output/.gitkeep new file mode 100644 index 000000000..5f282702b --- /dev/null +++ b/Find-and-Replace/Find-and-replace-merge-field-name/.NET/Find-and-replace-merge-field-name/Output/.gitkeep @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Find-and-Replace/Find-and-replace-merge-field-name/.NET/Find-and-replace-merge-field-name/Program.cs b/Find-and-Replace/Find-and-replace-merge-field-name/.NET/Find-and-replace-merge-field-name/Program.cs new file mode 100644 index 000000000..2a579729c --- /dev/null +++ b/Find-and-Replace/Find-and-replace-merge-field-name/.NET/Find-and-replace-merge-field-name/Program.cs @@ -0,0 +1,50 @@ +using Syncfusion.DocIO; +using Syncfusion.DocIO.DLS; +using System.Collections.Generic; +using System.IO; + +namespace Find_and_replace_merge_field_name +{ + class Program + { + static void Main(string[] args) + { + using (FileStream fileStreamPath = new FileStream(Path.GetFullPath(@"Data/Template.docx"), FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) + { + // Opens the template Word document. + using (WordDocument document = new WordDocument(fileStreamPath, FormatType.Automatic)) + { + // Finds all merge fields in the document. + List mergeFields = document.FindAllItemsByProperty(EntityType.MergeField, null, null); + // Replaces the merge field name "first_name" with "FirstName". + ReplaceMergeFieldName("Forename", "FirstName", mergeFields); + // Replaces the merge field name "last_name" with "LastName". + ReplaceMergeFieldName("Surname", "LastName", mergeFields); + // Creates a file stream to save the modified document. + using (FileStream outputFileStream = new FileStream(Path.GetFullPath(@"Output/Result.docx"), FileMode.Create, FileAccess.ReadWrite)) + { + // Saves the Word document to the file stream in DOCX format. + document.Save(outputFileStream, FormatType.Docx); + } + } + } + } + + /// + /// Replaces the specified merge field name with a new name in the given list of merge fields. + /// + private static void ReplaceMergeFieldName(string nameToFind, string nameToReplace, List mergeFields) + { + // Iterates through the list of merge fields. + foreach (Entity field in mergeFields) + { + // Checks if the current merge field matches the name to be replaced. + if ((field as WMergeField).FieldName == nameToFind) + { + // Updates the merge field name to the new name. + (field as WMergeField).FieldName = nameToReplace; + } + } + } + } +}