i am using Visual Studio .NET (VB) So if you have a solution in C#, just go here first (http://converter.telerik.com/)
I have a document with text, and an array of words to replace: I need to replace the plaintext and substitute with actual mergefield
Dim replacements(,) As String =
New String(,) {{"[firstname]", "$Field.FName"},
{"[lastname]", "$Field.LName"},
{"[addr]", "$Field.Addr.St"},
{"[city]", "$Field.City"}}
Dim dotXLoc "c:/test/result.dotx"
Dim Fileformat As Microsoft.Office.Interop.Word.WdSaveFormat = Word.WdSaveFormat.wdFormatXMLTemplate 'SAVE AS DOT
Dim wordApp As Object = New Microsoft.Office.Interop.Word.Application()
Dim currentDoc As Microsoft.Office.Interop.Word.Document = wordApp.Documents.Open(dotXLoc)
' Get bounds of the array.
Dim bound0 As Integer = replacements.GetUpperBound(0)
' Loop over all elements.
For i As Integer = 0 To bound0
' Get element.
Dim FieldFind As String = replacements(i, 0)
Dim FieldReplace As String = replacements(i, 1)
'<<< CODE HERE TO REPLACE TEXT WITH MERGEFIELD >>>
Next
currentDoc.SaveAs(dotXLoc & " v2.dotx", Fileformat)
currentDoc.Close()
wordApp.Quit()
Here is the end result
we call TextToMergeField(currentDoc) from the main function this way we can loop through multiple documents and replace all instances
Hope this helps someone