diff --git a/Mail-Merge/insert-merge-field-at-bookmark/.NET/insert-merge-field-at-bookmark.slnx b/Mail-Merge/insert-merge-field-at-bookmark/.NET/insert-merge-field-at-bookmark.slnx new file mode 100644 index 00000000..927fdf19 --- /dev/null +++ b/Mail-Merge/insert-merge-field-at-bookmark/.NET/insert-merge-field-at-bookmark.slnx @@ -0,0 +1,3 @@ + + + diff --git a/Mail-Merge/insert-merge-field-at-bookmark/.NET/insert-merge-field-at-bookmark/Data/Template.docx b/Mail-Merge/insert-merge-field-at-bookmark/.NET/insert-merge-field-at-bookmark/Data/Template.docx new file mode 100644 index 00000000..3f9b68d1 Binary files /dev/null and b/Mail-Merge/insert-merge-field-at-bookmark/.NET/insert-merge-field-at-bookmark/Data/Template.docx differ diff --git a/Mail-Merge/insert-merge-field-at-bookmark/.NET/insert-merge-field-at-bookmark/Output/.gitkeep b/Mail-Merge/insert-merge-field-at-bookmark/.NET/insert-merge-field-at-bookmark/Output/.gitkeep new file mode 100644 index 00000000..5f282702 --- /dev/null +++ b/Mail-Merge/insert-merge-field-at-bookmark/.NET/insert-merge-field-at-bookmark/Output/.gitkeep @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Mail-Merge/insert-merge-field-at-bookmark/.NET/insert-merge-field-at-bookmark/Output/Result.docx b/Mail-Merge/insert-merge-field-at-bookmark/.NET/insert-merge-field-at-bookmark/Output/Result.docx new file mode 100644 index 00000000..a4210a11 Binary files /dev/null and b/Mail-Merge/insert-merge-field-at-bookmark/.NET/insert-merge-field-at-bookmark/Output/Result.docx differ diff --git a/Mail-Merge/insert-merge-field-at-bookmark/.NET/insert-merge-field-at-bookmark/Program.cs b/Mail-Merge/insert-merge-field-at-bookmark/.NET/insert-merge-field-at-bookmark/Program.cs new file mode 100644 index 00000000..8f8b0731 --- /dev/null +++ b/Mail-Merge/insert-merge-field-at-bookmark/.NET/insert-merge-field-at-bookmark/Program.cs @@ -0,0 +1,49 @@ +using Syncfusion.DocIO; +using Syncfusion.DocIO.DLS; + +namespace Insert_merge_field_at_bookmark +{ + class Program + { + static void Main(string[] args) + { + using (FileStream fileStreamPath = new FileStream(Path.GetFullPath(@"Data/Template.docx"), FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) + { + //Load an existing Word document into DocIO instance + using (WordDocument document = new WordDocument(fileStreamPath, FormatType.Docx)) + { + #region Insert paragraph at bookmark + // Create text bodypart + TextBodyPart bodyPart = new TextBodyPart(document); + // Create new paragraph and append merge field + WParagraph para = new WParagraph(document); + para.AppendField("Product", FieldType.FieldMergeField); + bodyPart.BodyItems.Add(para); + + //Create the bookmark navigator instance to access the bookmark + BookmarksNavigator bkmk = new BookmarksNavigator(document); + //Move the virtual cursor to the location before the end of the bookmark + bkmk.MoveToBookmark("bookmark"); + // Replace the bookmark content with our body part + bkmk.ReplaceBookmarkContent(bodyPart); + #endregion + + #region Execute mailmerge + string[] fieldNames = { "Product", "ProductNo", "Size" }; + string[] fieldValues = { "Cycle", "1234", "32" }; + document.MailMerge.Execute(fieldNames, fieldValues); + #endregion + + //Creates file stream + using (FileStream outputFileStream = new FileStream(Path.GetFullPath(@"Output/Result.docx"), FileMode.Create, FileAccess.ReadWrite)) + { + //Save the loaded document in WordML format to the output stream + document.Save(outputFileStream, FormatType.Docx); + //Close the Word document + document.Close(); + } + } + } + } + } +} diff --git a/Mail-Merge/insert-merge-field-at-bookmark/.NET/insert-merge-field-at-bookmark/insert-merge-field-at-bookmark.csproj b/Mail-Merge/insert-merge-field-at-bookmark/.NET/insert-merge-field-at-bookmark/insert-merge-field-at-bookmark.csproj new file mode 100644 index 00000000..7ac4063e --- /dev/null +++ b/Mail-Merge/insert-merge-field-at-bookmark/.NET/insert-merge-field-at-bookmark/insert-merge-field-at-bookmark.csproj @@ -0,0 +1,30 @@ + + + + Exe + net8.0 + insert_merge_field_at_bookmark + enable + enable + + + + + + + + + Always + + + Always + + + Always + + + Always + + + +