Hi Hadi,
<span lang=“EN-GB” style=“font-size:10.0pt;font-family:“Courier New”;color:blue;mso-font-kerning:
0pt;mso-no-proof:yes”>namespace<span lang=“EN-GB” style=“font-size:10.0pt;
font-family:“Courier New”;mso-font-kerning:0pt;mso-no-proof:yes”>
MailMerge_Test<o:p></o:p>
{
class Program : IFieldMergingCallback
{
static void Main(string[] args)
{
new Program().Test_MailMerge();
}
public void
Test_MailMerge()
{
string MyDir = @"D:\";
Document doc = new
Document(MyDir + "MailMerge.docx");
// Add a handler for the MergeField event.
doc.MailMerge.FieldMergingCallback = this;
// Execute mail merge.
doc.MailMerge.Execute(new string[] { "Aspose.Words" }, new string[] { "Aspose.Words for Java" });
// Save resulting document with a new name.
doc.Save(MyDir + "AsposeOut.docx");
}
///
/// This is called when
merge field is actually merged with data in the document.
///
void IFieldMergingCallback.FieldMerging(FieldMergingArgs e)
{
//Your Code
if (e.FieldName == "Aspose.Words")
{
e.Text
= "Aspose.Words for .NET";
}
}
void IFieldMergingCallback.ImageFieldMerging(ImageFieldMergingArgs e)
{
//
Do nothing.
}
}
}
Following code example shows how to mail merge HTML data into a document.
//
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 handler
for the MergeField event.
doc.MailMerge.FieldMergingCallback = new 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");
}
private class HandleMergeFieldInsertHtml :
IFieldMergingCallback
{
///
/// This is called
when merge field is actually merged with data in the document.
///
void
IFieldMergingCallback.FieldMerging(FieldMergingArgs 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 = "";
}
}
void
IFieldMergingCallback.ImageFieldMerging(ImageFieldMergingArgs e)
{
// Do
nothing.
}
}