Represents the method that will handle the MergeField event.
Remarks
Example
Shows how to mail merge HTML data into a document.
[C#]
// File 'MailMerge.InsertHtml.doc' has merge field named 'htmlField1' in it.
// File 'MailMerge.HtmlData.html' contains some valid Html data.
// The same approach can be used when merging HTML data from database.
public void MailMergeInsertHtml()
{
Document doc = new Document(MyDir + "MailMerge.InsertHtml.doc");
// Add a hadler for the MergeField event.
doc.MailMerge.MergeField += new MergeFieldEventHandler(HandleMergeFieldInsertHtml);
// Load some Html from file.
StreamReader sr = File.OpenText(MyDir + "MailMerge.HtmlData.html");
string htmltext = sr.ReadToEnd();
sr.Close();
// Execute mail merge.
doc.MailMerge.Execute(new string[] { "htmlField1" }, new string[] { htmltext });
// Save resulting document with a new name.
doc.Save(MyDir + "MailMerge.InsertHtml Out.doc");
}
/// <summary>
/// This is called when merge field is actually merged with data in the document.
/// </summary>
private static void HandleMergeFieldInsertHtml(object sender, MergeFieldEventArgs e)
{
// All merge fields that expect HTML data should be marked with some prefix, e.g. 'html'.
if (e.DocumentFieldName.StartsWith("html"))
{
// Insert the text for this merge field as HTML data, using DocumentBuilder.
DocumentBuilder builder = new DocumentBuilder(e.Document);
builder.MoveToMergeField(e.DocumentFieldName);
builder.InsertHtml((string)e.FieldValue);
// The HTML text itself should not be inserted.
// We have already inserted it as an HTML.
e.Text = "";
}
}[Visual Basic]
' File 'MailMerge.InsertHtml.doc' has merge field named 'htmlField1' in it.
' File 'MailMerge.HtmlData.html' contains some valid Html data.
' The same approach can be used when merging HTML data from database.
<Test> _
Public Sub MailMergeInsertHtml()
Dim doc As Document = New Document(MyDir & "MailMerge.InsertHtml.doc")
' Add a hadler for the MergeField event.
AddHandler doc.MailMerge.MergeField, AddressOf HandleMergeFieldInsertHtml
' Load some Html from file.
Dim sr As StreamReader = File.OpenText(MyDir & "MailMerge.HtmlData.html")
Dim htmltext As String = sr.ReadToEnd()
sr.Close()
' Execute mail merge.
doc.MailMerge.Execute(New String() { "htmlField1" }, New String() { htmltext })
' Save resulting document with a new name.
doc.Save(MyDir & "MailMerge.InsertHtml Out.doc")
End Sub
''' <summary>
''' This is called when merge field is actually merged with data in the document.
''' </summary>
Private Shared Sub HandleMergeFieldInsertHtml(ByVal sender As Object, ByVal e As MergeFieldEventArgs)
' All merge fields that expect HTML data should be marked with some prefix, e.g. 'html'.
If e.DocumentFieldName.StartsWith("html") Then
' Insert the text for this merge field as HTML data, using DocumentBuilder.
Dim builder As DocumentBuilder = New DocumentBuilder(e.Document)
builder.MoveToMergeField(e.DocumentFieldName)
builder.InsertHtml(CStr(e.FieldValue))
' The HTML text itself should not be inserted.
' We have already inserted it as an HTML.
e.Text = ""
End If
End SubRequirements
Namespace: Aspose.Words.Reporting
Assembly: Aspose.Words (in Aspose.Words.dll)
See Also
Aspose.Words.Reporting Namespace | MailMerge | MergeField | MergeFieldEventArgs