private static void ImageMailMerge() throws Exception<o:p></o:p>
{<o:p></o:p>
<o:p></o:p>
//
Open template<o:p></o:p>
com.aspose.words.Document doc = new com.aspose.words.Document(“E:/Data/ImageMailMerge.temp.docx”);<o:p></o:p>
//
Prepare dummy data for mail merge<o:p></o:p>
String[] names = { “MyLogo” };<o:p></o:p>
Object[] values = { Files.readAllBytes(Paths.get(“E:/data/Aspose.jpg”)) };<o:p></o:p>
//
Add merge image field event handler<o:p></o:p>
doc.getMailMerge().setFieldMergingCallback(new
MergeImageFieldResizeImage());<o:p></o:p>
//
Execute mail merge<o:p></o:p>
doc.getMailMerge().execute(names, values);<o:p></o:p>
//
Save output document<o:p></o:p>
doc.save(“E:/Data/Image_Mailmerge_out_resize.docx”);<o:p></o:p>
}<o:p></o:p>
private static class MergeImageFieldResizeImage
implements
IFieldMergingCallback {<o:p></o:p>
public void
fieldMerging(FieldMergingArgs args) throws Exception {<o:p></o:p>
// Do nothing.<o:p></o:p>
}<o:p></o:p>
/**<o:p></o:p>
* This is called when mail merge engine
encounters Image:XXX merge<o:p></o:p>
* field in the document. You have a chance to
return an Image object,<o:p></o:p>
* file name or a stream that contains the
image.<o:p></o:p>
*/<o:p></o:p>
public void
imageFieldMerging(ImageFieldMergingArgs e) throws Exception {<o:p></o:p>
<o:p></o:p>
// Create DocuemntBuilder and move its
cursor to the mergefield<o:p></o:p>
DocumentBuilder builder = new DocumentBuilder(e.getDocument());<o:p></o:p>
builder.moveToField(e.getField(), true);<o:p></o:p>
//
Insert image and specify its size<o:p></o:p>
builder.insertImage((byte[])e.getFieldValue(), 50, 50);<o:p></o:p>
e.getField().remove();<o:p></o:p>
<o:p></o:p>
}<o:p></o:p>
}