How to perform mail merge in Word document using image from URL?
Syncfusion® Essential® DocIO is a .NET Core Word library used to create, read, and edit Word documents programmatically without Microsoft Word or Interop dependencies. Using this library, you can perform mail merge in Word document using image from URL in C#.
Steps to perform mail merge in Word document using image from URL:
- Create a new C# .NET Core console application project.
- Install the Syncfusion.DocIO.Net.Core NuGet package as a reference to your .NET Core applications from NuGet.org.
- Include the following namespace in the Program.cs file.
C#
using Syncfusion.DocIO; using Syncfusion.DocIO.DLS;
- Use the following code example to perform mail merge in Word document using image from URL.
C#
//Open the file as a stream. 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" }; string[] fieldValues = new string[] { "https://www.syncfusion.com/downloads/support/directtrac/general/AdventureCycle-1316159971.png" }; //Executes the mail merge with groups. document.MailMerge.Execute(fieldNames, fieldValues); //Unhooks the mail merge event handler. document.MailMerge.MergeImageField -= new MergeImageFieldEventHandler(MergeField_ProductImage); using (FileStream outputStream = new FileStream(Path.GetFullPath(@"../../../Result.docx"), FileMode.Create, FileAccess.ReadWrite)) { //Saves the Word document to file stream. document.Save(outputStream, FormatType.Docx); } } }
- Use the following helper method to get image from URL and insert into Word document while performing mail merge by using MergeImageFieldEventHandler.
C#
/// <summary> /// Represents the method that handles MergeImageField event. /// </summary> private static void MergeField_ProductImage(object sender, MergeImageFieldEventArgs args) { //Binds image from URL during mail merge. if (args.FieldName == "Logo") { string ProductFileName = args.FieldValue.ToString(); WebClient client = new WebClient(); //Download the image from URL as byte array. byte[] imageBytes = client.DownloadData(ProductFileName); MemoryStream ms = new MemoryStream(imageBytes); //Set the retrieved image from the memory stream. args.ImageStream = ms; //Gets the picture to be merged for image merge field. WPicture picture = args.Picture; //Resizes the picture. picture.Height = 80; picture.Width = 150; } }
A complete working sample to perform mail merge in Word document using image from URL in C# can be downloaded from GitHub.
By executing the program, you will get the Output document as follows.
Take a moment to peruse the documentation, where you can find basic Word document processing options along with the features like mail merge, merge and split documents, find and replace text in the Word document, protect the Word documents, and most importantly, the PDF and Image conversions with code examples.
Explore more about the rich set of Syncfusion® Word Framework features.
See Also:
How to mail merge Word document in Azure functions v1
How to display mail merge result using format switch in the Word document
Is it possible to Mail Merge using csv data source
How to mail merge Word document in Linux (Mono)
How to replace merge field with HTML string using Mail merge
How to mail merge Word document in Docker
Conclusion
I hope you enjoyed learning about how to perform mail merge in Word document using image from URL.
You can refer to our ASP.NET Core DocIO’s feature tour page to know about its other groundbreaking feature representations. You can also explore our ASP.NET Core DocIO documentation to understand how to present and manipulate data.
For current customers, you can check out our ASP.NET Core components from the License and Downloads page. If you are new to Syncfusion®, you can try our 30-day free trial to check out our ASP.NET Core DocIO and other ASP.NET Core components.
If you have any queries or require clarifications, please let us know in comments below. You can also contact us through our support forums, Direct-Trac, or feedback portal. We are always happy to assist you!