diff --git a/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page.sln b/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page.sln
new file mode 100644
index 000000000..4a8a64175
--- /dev/null
+++ b/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page.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}") = "Mail-merge-in-multi-column-page", "Mail-merge-in-multi-column-page\Mail-merge-in-multi-column-page.csproj", "{D3AF529E-DB54-4294-A876-DD42E1E472D0}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D3AF529E-DB54-4294-A876-DD42E1E472D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D3AF529E-DB54-4294-A876-DD42E1E472D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D3AF529E-DB54-4294-A876-DD42E1E472D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D3AF529E-DB54-4294-A876-DD42E1E472D0}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {58137FF9-5AE1-4514-9929-3A8A7DA1DFEB}
+ EndGlobalSection
+EndGlobal
diff --git a/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Data/Andrew.png b/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Data/Andrew.png
new file mode 100644
index 000000000..c038c884a
Binary files /dev/null and b/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Data/Andrew.png differ
diff --git a/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Data/Janet.png b/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Data/Janet.png
new file mode 100644
index 000000000..c86c4e53d
Binary files /dev/null and b/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Data/Janet.png differ
diff --git a/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Data/Margaret.png b/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Data/Margaret.png
new file mode 100644
index 000000000..861f5907a
Binary files /dev/null and b/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Data/Margaret.png differ
diff --git a/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Data/Nancy.png b/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Data/Nancy.png
new file mode 100644
index 000000000..677201146
Binary files /dev/null and b/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Data/Nancy.png differ
diff --git a/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Data/Steven.png b/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Data/Steven.png
new file mode 100644
index 000000000..dba7673f8
Binary files /dev/null and b/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Data/Steven.png differ
diff --git a/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Data/Template.docx b/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Data/Template.docx
new file mode 100644
index 000000000..236ed43ed
Binary files /dev/null and b/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Data/Template.docx differ
diff --git a/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Mail-merge-in-multi-column-page.csproj b/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Mail-merge-in-multi-column-page.csproj
new file mode 100644
index 000000000..43ebc7400
--- /dev/null
+++ b/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Mail-merge-in-multi-column-page.csproj
@@ -0,0 +1,37 @@
+
+
+
+ Exe
+ net8.0
+ Mail_merge_in_multi_column_page
+
+
+
+
+
+
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+
+
diff --git a/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Output/.gitkeep b/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Output/.gitkeep
new file mode 100644
index 000000000..5f282702b
--- /dev/null
+++ b/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Output/.gitkeep
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Program.cs b/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Program.cs
new file mode 100644
index 000000000..3b5504e2b
--- /dev/null
+++ b/Mail-Merge/Mail-merge-in-multi-column-page/.NET/Mail-merge-in-multi-column-page/Program.cs
@@ -0,0 +1,95 @@
+using Syncfusion.DocIO;
+using Syncfusion.DocIO.DLS;
+using System.Collections.Generic;
+using System.IO;
+
+namespace Mail_merge_in_multi_column_page
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ using (FileStream fileStream = new FileStream(Path.GetFullPath(@"Data/Template.docx"), FileMode.Open, FileAccess.ReadWrite))
+ {
+ //Loads an existing Word document into DocIO instance.
+ using (WordDocument document = new WordDocument(fileStream, FormatType.Automatic))
+ {
+ //Gets the employee details as IEnumerable collection.
+ List employeeList = GetEmployees();
+ //Creates an instance of MailMergeDataTable by specifying MailMerge group name and IEnumerable collection.
+ MailMergeDataTable dataSource = new MailMergeDataTable("Employees", employeeList);
+ //Uses the mail merge events handler for image fields.
+ document.MailMerge.MergeImageField += new MergeImageFieldEventHandler(MergeField_EmployeeImage);
+ //Performs Mail merge.
+ document.MailMerge.ExecuteGroup(dataSource);
+ //Creates file stream.
+ using (FileStream outputStream = new FileStream(Path.GetFullPath(@"Output/Result.docx"), FileMode.Create, FileAccess.ReadWrite))
+ {
+ //Saves the Word document to file stream.
+ document.Save(outputStream, FormatType.Docx);
+ }
+ }
+ }
+ }
+
+ ///
+ /// Gets the employee details to perform mail merge.
+ ///
+ public static List GetEmployees()
+ {
+ List employees = new List();
+ employees.Add(new Employee("Nancy", "Smith", "Sales Representative", "505 - 20th Ave. E. Apt. 2A,", "Seattle", "WA", "USA", "Nancy.png"));
+ employees.Add(new Employee("Andrew", "Fuller", "Vice President, Sales", "908 W. Capital Way", "Tacoma", "WA", "USA", "Andrew.png"));
+ employees.Add(new Employee("Roland", "Mendel", "Sales Representative", "722 Moss Bay Blvd.", "Kirkland", "WA", "USA", "Janet.png"));
+ employees.Add(new Employee("Margaret", "Peacock", "Sales Representative", "4110 Old Redmond Rd.", "Redmond", "WA", "USA", "Margaret.png"));
+ employees.Add(new Employee("Steven", "Buchanan", "Sales Manager", "14 Garrett Hill", "London", string.Empty, "UK", "Steven.png"));
+ return employees;
+ }
+
+ ///
+ /// Represents the method that handles MergeImageField event.
+ ///
+ private static void MergeField_EmployeeImage(object sender, MergeImageFieldEventArgs args)
+ {
+ //Binds image from file system during mail merge.
+ if (args.FieldName == "Photo")
+ {
+ string photoFileName = args.FieldValue.ToString();
+ //Gets the image from file system.
+ FileStream imageStream = new FileStream(Path.GetFullPath(@"Data/" + photoFileName), FileMode.Open, FileAccess.Read);
+ args.ImageStream = imageStream;
+ //Gets the picture, to be merged for image merge field
+ WPicture picture = args.Picture;
+ //Resizes the picture
+ picture.Height = 90;
+ picture.Width = 90;
+ }
+ }
+ }
+
+ ///
+ /// Represents a class to maintain employee details.
+ ///
+ public class Employee
+ {
+ public string FirstName { get; set; }
+ public string LastName { get; set; }
+ public string Address { get; set; }
+ public string City { get; set; }
+ public string Region { get; set; }
+ public string Country { get; set; }
+ public string Title { get; set; }
+ public string Photo { get; set; }
+ public Employee(string firstName, string lastName, string title, string address, string city, string region, string country, string photoFilePath)
+ {
+ FirstName = firstName;
+ LastName = lastName;
+ Title = title;
+ Address = address;
+ City = city;
+ Region = region;
+ Country = country;
+ Photo = photoFilePath;
+ }
+ }
+}