public interface MergeImageFieldEventHandler
One can implement this interface in a class that needs in notification if MergeImageField
event is occur. Implimenting class also must be registered as event subscriber
by a call to 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);
}
}
Method Summary | ||
---|---|---|
void | mergeImageField(java.lang.Object sender, MergeImageFieldEventArgs e) | |
Occurs during mail merge when an image mail merge field is encountered in the document. |
Method Detail |
---|
mergeImageField | |
public void mergeImageField(java.lang.Object sender, MergeImageFieldEventArgs e) throws java.lang.Exception |