Articles in this section
Category / Section

How to perform mail merge in Word document using image from URL?

6 mins read

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:

  1. Create a new C# .NET Core console application project. Create .NET Core console application in Visual Studio in ASP.NET Core Word
  2. Install the Syncfusion.DocIO.Net.Core NuGet package as a reference to your .NET Core applications from NuGet.org.Add DocIO.Net.Core NuGet packages of ASP.NET Core Word
  3. Include the following namespace in the Program.cs file.

C#

using Syncfusion.DocIO;
using Syncfusion.DocIO.DLS;
  1. 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);
         }
     }
}
  1. 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.

Output document in ASP.NET Core DocIO 

Take a moment to peruse the documentation, where you can find basic Word document processing options along with the features like mail mergemerge 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 forumsDirect-Trac, or feedback portal. We are always happy to assist you!

 

 

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please sign in to leave a comment
Access denied
Access denied