diff --git a/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size.sln b/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size.sln new file mode 100644 index 000000000..6d468f675 --- /dev/null +++ b/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size.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}") = "Set-uniform-image-size", "Set-uniform-image-size\Set-uniform-image-size.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/Set-uniform-image-size/.NET/Set-uniform-image-size/Data/Logo.png b/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Data/Logo.png new file mode 100644 index 000000000..dfdedc844 Binary files /dev/null and b/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Data/Logo.png differ diff --git a/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Data/Picture1.gif b/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Data/Picture1.gif new file mode 100644 index 000000000..52a0d84b4 Binary files /dev/null and b/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Data/Picture1.gif differ diff --git a/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Data/Picture2.gif b/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Data/Picture2.gif new file mode 100644 index 000000000..e0bd49076 Binary files /dev/null and b/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Data/Picture2.gif differ diff --git a/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Data/Picture3.gif b/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Data/Picture3.gif new file mode 100644 index 000000000..6faf9416e Binary files /dev/null and b/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Data/Picture3.gif differ diff --git a/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Data/Template.docx b/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Data/Template.docx new file mode 100644 index 000000000..e599dd7b4 Binary files /dev/null and b/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Data/Template.docx differ diff --git a/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Output/.gitkeep b/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Output/.gitkeep new file mode 100644 index 000000000..5f282702b --- /dev/null +++ b/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Output/.gitkeep @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Program.cs b/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Program.cs new file mode 100644 index 000000000..254132578 --- /dev/null +++ b/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Program.cs @@ -0,0 +1,55 @@ +using Syncfusion.DocIO; +using Syncfusion.DocIO.DLS; +using System.IO; + +namespace Set_uniform_image_size +{ + class Program + { + static void Main(string[] args) + { + using (FileStream fileStream = new FileStream(Path.GetFullPath(@"Data/Template.docx"), FileMode.Open, FileAccess.ReadWrite)) + { + //Opens the template document. + using (WordDocument document = new WordDocument(fileStream, FormatType.Docx)) + { + //Uses the mail merge events handler for image fields. + document.MailMerge.MergeImageField += new MergeImageFieldEventHandler(MergeField_ProductImage); + //Specifies the field names and field values. + string[] fieldNames = new string[] { "Logo" , "Picture1", "Picture2", "Picture3"}; + string[] fieldValues = new string[] { "Logo.png", "Picture1.gif", "Picture2.gif","Picture3.gif" }; + //Executes the mail merge with groups. + document.MailMerge.Execute(fieldNames, fieldValues); + //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); + } + } + } + } + + #region Helper methods + /// + /// Represents the method that handles MergeImageField event. + /// + private static void MergeField_ProductImage(object sender, MergeImageFieldEventArgs args) + { + //Binds image from file system during mail merge. + if (args.FieldName == "Logo" || args.FieldName == "Picture1" || args.FieldName == "Picture2" || args.FieldName == "Picture3") + { + string ProductFileName = args.FieldValue.ToString(); + //Gets the image from file system + FileStream imageStream = new FileStream(Path.GetFullPath(@"Data/" + ProductFileName), 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 = 50; + picture.Width = 100; + } + } + #endregion + } +} diff --git a/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Set-uniform-image-size.csproj b/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Set-uniform-image-size.csproj new file mode 100644 index 000000000..61b605505 --- /dev/null +++ b/Mail-Merge/Set-uniform-image-size/.NET/Set-uniform-image-size/Set-uniform-image-size.csproj @@ -0,0 +1,34 @@ + + + + Exe + net8.0 + Set_uniform_image_size + + + + + + + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + +