java.lang.ObjectMergeFieldEventArgsBase
com.aspose.words.MergeImageFieldEventArgs
public class MergeImageFieldEventArgs
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 There are three properties avaialable To insert an image mail merge field into a document in Word, select Insert/Field command,
then select MergeField and type Image:MyFieldName. Example:
public void mailMergeImageFromBlob() throws Exception
{
Document doc = new Document(getMyDir() + "MailMerge.MergeImage.doc");
// Set up the event handler for image fields and perform mail merge.
doc.getMailMerge().addMergeImageFieldEventHandler(new HandleMergeImageFieldFromBlob());
// Open a DSN-less connection.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String connString = "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};" +
"DBQ=" + getDatabaseDir() + "Northwind.mdb;UID=Admin";
Connection conn = DriverManager.getConnection(connString);
// Load a data table.
Statement statement = conn.createStatement();
ResultSet employeesTable = statement.executeQuery("SELECT * FROM Employees");
// Execute mail merge.
doc.getMailMerge().executeWithRegions("Employees", employeesTable);
// Close the database.
conn.close();
doc.save(getMyDir() + "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 class HandleMergeImageFieldFromBlob implements MergeImageFieldEventHandler
{
public void mergeImageField(Object sender, MergeImageFieldEventArgs e)
{
// The field value is a byte array, just cast it and create a stream on it.
InputStream imageStream = new ByteArrayInputStream((byte[])e.getFieldValue());
// Now the mail merge engine will retrieve the image from the stream.
e.setImageStream(imageStream);
}
}
Property Getters/Setters Summary | ||
---|---|---|
Document | getDocument() | → inherited from MergeFieldEventArgsBase |
Returns the |
||
java.lang.String | getDocumentFieldName() | → inherited from MergeFieldEventArgsBase |
Gets the name of the merge field as specified in the document. | ||
Field | getField() | → inherited from MergeFieldEventArgsBase |
Gets the object that represents the current merge field. | ||
java.lang.String | getFieldName() | → inherited from MergeFieldEventArgsBase |
Gets the name of the merge field in the data source. | ||
java.lang.Object | getFieldValue() | → inherited from MergeFieldEventArgsBase |
Gets the value of the field from the data source. | ||
java.awt.image.BufferedImage | getImage() | |
void | setImage(java.awt.image.BufferedImage value) | |
Specifies the image that the mail merge engine must insert into the document. | ||
java.lang.String | getImageFileName() | |
void | setImageFileName(java.lang.String value) | |
Sets the file name of the image that the mail merge engine must insert into the document. | ||
java.io.InputStream | getImageStream() | |
void | setImageStream(java.io.InputStream value) | |
Specifies the stream for the mail merge engine to read an image from. | ||
int | getRecordIndex() | → inherited from MergeFieldEventArgsBase |
Gets the zero based index of the record that is being merged. | ||
java.lang.String | getTableName() | → inherited from MergeFieldEventArgsBase |
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 |
---|
getImageFileName/setImageFileName | |
public java.lang.String getImageFileName() / public void setImageFileName(java.lang.String value) |
getImageStream/setImageStream | |
public java.io.InputStream getImageStream() / public void setImageStream(java.io.InputStream value) |
Aspose.Words closes this stream after it merges the image into the document.
Example:
Shows how to insert images stored in a database BLOB field into a report.public void mailMergeImageFromBlob() throws Exception { Document doc = new Document(getMyDir() + "MailMerge.MergeImage.doc"); // Set up the event handler for image fields and perform mail merge. doc.getMailMerge().addMergeImageFieldEventHandler(new HandleMergeImageFieldFromBlob()); // Open a DSN-less connection. Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String connString = "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};" + "DBQ=" + getDatabaseDir() + "Northwind.mdb;UID=Admin"; Connection conn = DriverManager.getConnection(connString); // Load a data table. Statement statement = conn.createStatement(); ResultSet employeesTable = statement.executeQuery("SELECT * FROM Employees"); // Execute mail merge. doc.getMailMerge().executeWithRegions("Employees", employeesTable); // Close the database. conn.close(); doc.save(getMyDir() + "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 class HandleMergeImageFieldFromBlob implements MergeImageFieldEventHandler { public void mergeImageField(Object sender, MergeImageFieldEventArgs e) { // The field value is a byte array, just cast it and create a stream on it. InputStream imageStream = new ByteArrayInputStream((byte[])e.getFieldValue()); // Now the mail merge engine will retrieve the image from the stream. e.setImageStream(imageStream); } }
getImage/setImage | |
public java.awt.image.BufferedImage getImage() / public void setImage(java.awt.image.BufferedImage value) |
getDocument | → inherited from MergeFieldEventArgsBase |
public Document getDocument() |
getTableName | → inherited from MergeFieldEventArgsBase |
public java.lang.String getTableName() |
getRecordIndex | → inherited from MergeFieldEventArgsBase |
public int getRecordIndex() |
getFieldName | → inherited from MergeFieldEventArgsBase |
public java.lang.String getFieldName() |
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 | → inherited from MergeFieldEventArgsBase |
public java.lang.String getDocumentFieldName() |
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".
getFieldValue | → inherited from MergeFieldEventArgsBase |
public java.lang.Object getFieldValue() |
getField | → inherited from MergeFieldEventArgsBase |
public Field getField() |