Provides data for the MergeImageFieldEventHandler event.
For a list of all members of this type, see MergeImageFieldEventArgs Members.
System.Object
System.EventArgs
Aspose.Words.Reporting.MergeFieldEventArgsBase
Aspose.Words.Reporting.MergeImageFieldEventArgs
[Visual Basic]Public Class MergeImageFieldEventArgs
Remarks
This event occurs during mail merge when an image mail merge field is encountered in the document. You can respond to this event to return a file name, stream, or an Image object to the mail merge engine so it is inserted into the document.
There are three properties avaialable ImageFileName, ImageStream and Image to specify where the image must be taken from. Set only one of these properties.
To insert an image mail merge field into a document in Word, select Insert/Field command, then select MergeField and type Image:MyFieldName.
Example
Shows how to insert images stored in a database BLOB field into a report.
[C#]
public void MailMergeImageFromBlob()
{
Document doc = new Document(MyDir + "MailMerge.MergeImage.doc");
// Set up the event handler for image fields.
doc.MailMerge.MergeImageField += new MergeImageFieldEventHandler(HandleMergeImageFieldFromBlob);
// Open a database connection.
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DatabaseDir + "Northwind.mdb";
OleDbConnection conn = new OleDbConnection(connString);
conn.Open();
// Open the data reader. It needs to be in the normal mode that reads all record at once.
OleDbCommand cmd = new OleDbCommand("SELECT * FROM Employees", conn);
IDataReader dataReader = cmd.ExecuteReader();
// Perform mail merge.
doc.MailMerge.ExecuteWithRegions(dataReader, "Employees");
// Close the database.
conn.Close();
doc.Save(MyDir + "MailMerge.MergeImage Out.doc");
}
/// <summary>
/// This is called when mail merge engine encounters Image:XXX merge field in the document.
/// You have a chance to return an Image object, file name or a stream that contains the image.
/// </summary>
private static void HandleMergeImageFieldFromBlob(object sender, MergeImageFieldEventArgs e)
{
// The field value is a byte array, just cast it and create a stream on it.
MemoryStream imageStream = new MemoryStream((byte[])e.FieldValue);
// Now the mail merge engine will retrieve the image from the stream.
e.ImageStream = imageStream;
}[Visual Basic]
Public Sub MailMergeImageFromBlob()
Dim doc As Document = New Document(MyDir & "MailMerge.MergeImage.doc")
' Set up the event handler for image fields.
AddHandler doc.MailMerge.MergeImageField, AddressOf HandleMergeImageFieldFromBlob
' Open a database connection.
Dim connString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DatabaseDir & "Northwind.mdb"
Dim conn As OleDbConnection = New OleDbConnection(connString)
conn.Open()
' Open the data reader. It needs to be in the normal mode that reads all record at once.
Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM Employees", conn)
Dim dataReader As IDataReader = cmd.ExecuteReader()
' Perform mail merge.
doc.MailMerge.ExecuteWithRegions(dataReader, "Employees")
' Close the database.
conn.Close()
doc.Save(MyDir & "MailMerge.MergeImage Out.doc")
End Sub
''' <summary>
''' This is called when mail merge engine encounters Image:XXX merge field in the document.
''' You have a chance to return an Image object, file name or a stream that contains the image.
''' </summary>
Private Shared Sub HandleMergeImageFieldFromBlob(ByVal sender As Object, ByVal e As MergeImageFieldEventArgs)
' The field value is a byte array, just cast it and create a stream on it.
Dim imageStream As MemoryStream = New MemoryStream(CType(e.FieldValue, Byte()))
' Now the mail merge engine will retrieve the image from the stream.
e.ImageStream = imageStream
End SubRequirements
Namespace: Aspose.Words.Reporting
Assembly: Aspose.Words (in Aspose.Words.dll)
See Also
MergeImageFieldEventArgs Members | Aspose.Words.Reporting Namespace | MergeImageFieldEventHandler