com.aspose.words
Class MergeFieldEventArgsBase

java.lang.Object
    extended by com.aspose.words.MergeFieldEventArgsBase
Direct Known Subclasses:
MergeFieldEventArgs, MergeImageFieldEventArgs

public abstract class MergeFieldEventArgsBase 
extends java.lang.Object

Base class for MergeFieldEventArgs and MergeImageFieldEventArgs.
See Also:
MergeFieldEventArgs, MergeImageFieldEventArgs

Property Getters/Setters Summary
DocumentgetDocument()
           Returns the Document object for which the mail merge is performed.
java.lang.StringgetDocumentFieldName()
           Gets the name of the merge field as specified in the document.
FieldgetField()
           Gets the object that represents the current merge field.
java.lang.StringgetFieldName()
           Gets the name of the merge field in the data source.
java.lang.ObjectgetFieldValue()
           Gets the value of the field from the data source.
intgetRecordIndex()
           Gets the zero based index of the record that is being merged.
java.lang.StringgetTableName()
           Gets the name of the data table for the current merge operation or empty string if the name is not available.
 

Property Getters/Setters Detail

getDocument

public Document getDocument()
Returns the Document object for which the mail merge is performed.

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("");
        }
    }
}

getTableName

public java.lang.String getTableName()
Gets the name of the data table for the current merge operation or empty string if the name is not available.

getRecordIndex

public int getRecordIndex()
Gets the zero based index of the record that is being merged.

getFieldName

public java.lang.String getFieldName()
Gets the name of the merge field in the data source.

If you have a mapping from a document field name to a different data source field name, then this is the mapped field name.

If you specified a field name prefix, for example "Image:MyFieldName" in the document, then FieldName returns field name without the prefix, that is "MyFieldName".


getDocumentFieldName

public java.lang.String getDocumentFieldName()
Gets the name of the merge field as specified in the document.

If you have a mapping from a document field name to a different data source field name, then this is the original field name as specified in the document.

If you specified a field name prefix, for example "Image:MyFieldName" in the document, then DocumentFieldName returns field name without the prefix, that is "MyFieldName".

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("");
        }
    }
}

getFieldValue

public java.lang.Object getFieldValue()
Gets the value of the field from the data source. This property contains a value that has just been selected from your data source for this field by the mail merge engine.

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("");
        }
    }
}

getField

public Field getField()
Gets the object that represents the current merge field.

See Also:
          Aspose.Words Documentation - the home page for the Aspose.Words Product Documentation.
          Aspose.Words Support Forum - our preferred method of support.