|
com.aspose.words
Interface MergeFieldEventHandler
public interface MergeFieldEventHandler
Represents the method that will handle the MergeField event.
One can implement this interface in a class that needs in notification if MergeField
event is occur. Implimenting class also must be registered as event subscriber
by call a to MailMerge.addMergeFieldEventHandler(com.aspose.words.MergeFieldEventHandler) method.
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 MergeHtml() throws Exception
{
Document doc = new Document(getMyDir() + "MailMerge.InsertHtml.doc");
// Add a hadler for the MergeField event.
doc.getMailMerge().addMergeFieldEventHandler(new HandleMergeFieldInsertHtml());
// Load some Html from file.
FileReader fileReader = new FileReader(getMyDir() + "MailMerge.HtmlData.html");
BufferedReader buffReader = new BufferedReader(fileReader);
String temp = "";
String htmltext = "";
while ((temp = buffReader.readLine()) != null)
htmltext += temp;
buffReader.close();
// Execute mail merge.
doc.getMailMerge().execute(new String[] {"htmlField1"}, new String[] {htmltext});
// Save resulting document with a new name.
doc.save(getMyDir() + "MailMerge.InsertHtml Out.doc");
}
/// <summary>
/// This is called when merge field is actually merged with data in the document.
/// </summary>
private class HandleMergeFieldInsertHtml implements MergeFieldEventHandler
{
public void mergeField(Object sender, MergeFieldEventArgs e) throws Exception
{
// All merge fields that expect HTML data should be marked with some prefix, e.g. 'html'.
if (e.getDocumentFieldName().startsWith("html"))
{
// Insert the text for this merge field as HTML data, using DocumentBuilder.
DocumentBuilder builder = new DocumentBuilder(e.getDocument());
builder.moveToMergeField(e.getDocumentFieldName());
builder.insertHtml((String)e.getFieldValue());
// The HTML text itself should not be inserted.
// We have already inserted it as an HTML.
e.setText("");
}
}
} - See Also:
- MailMerge, MergeFieldEventArgs
|
Method Summary |
void | mergeField(java.lang.Object sender, MergeFieldEventArgs e) | |
|
MergeField event occurs during mail merge when a simple mail merge field is encountered in the document.
|
mergeField | |
public void mergeField(java.lang.Object sender, MergeFieldEventArgs e)
throws java.lang.Exception |
-
MergeField event occurs during mail merge when a simple mail merge field is encountered in the document.
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 MergeHtml() throws Exception
{
Document doc = new Document(getMyDir() + "MailMerge.InsertHtml.doc");
// Add a hadler for the MergeField event.
doc.getMailMerge().addMergeFieldEventHandler(new HandleMergeFieldInsertHtml());
// Load some Html from file.
FileReader fileReader = new FileReader(getMyDir() + "MailMerge.HtmlData.html");
BufferedReader buffReader = new BufferedReader(fileReader);
String temp = "";
String htmltext = "";
while ((temp = buffReader.readLine()) != null)
htmltext += temp;
buffReader.close();
// Execute mail merge.
doc.getMailMerge().execute(new String[] {"htmlField1"}, new String[] {htmltext});
// Save resulting document with a new name.
doc.save(getMyDir() + "MailMerge.InsertHtml Out.doc");
}
/// <summary>
/// This is called when merge field is actually merged with data in the document.
/// </summary>
private class HandleMergeFieldInsertHtml implements MergeFieldEventHandler
{
public void mergeField(Object sender, MergeFieldEventArgs e) throws Exception
{
// All merge fields that expect HTML data should be marked with some prefix, e.g. 'html'.
if (e.getDocumentFieldName().startsWith("html"))
{
// Insert the text for this merge field as HTML data, using DocumentBuilder.
DocumentBuilder builder = new DocumentBuilder(e.getDocument());
builder.moveToMergeField(e.getDocumentFieldName());
builder.insertHtml((String)e.getFieldValue());
// The HTML text itself should not be inserted.
// We have already inserted it as an HTML.
e.setText("");
}
}
}
See Also:
Aspose.Words Documentation - the home page for the Aspose.Words Product Documentation.
Aspose.Words Support Forum - our preferred method of support.
|