Hi<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
Thanks for your request. Yes, in case of using mail merge you can try using FieldMergingCallback, please see the following code:
// Open template
Document doc = new Document("in.doc");
// Prepare dummy data for mail merge
string[] names = { "myImg" };
object[] values = { File.ReadAllBytes("image.jpg") };
// Add merge image field event handler
doc.MailMerge.FieldMergingCallback = new MergeImageFieldHrefImage();
// Execute mail merge
doc.MailMerge.Execute(names, values);
// Save output document
doc.Save("out.doc");
private class MergeImageFieldHrefImage: IFieldMergingCallback
{
void IFieldMergingCallback.FieldMerging(FieldMergingArgs args)
{
// Do nothing.
}
void IFieldMergingCallback.ImageFieldMerging(ImageFieldMergingArgs e)
{
// Create DocuemntBuilder and move its cursor to the mergefield
DocumentBuilder builder = new DocumentBuilder(e.Document);
builder.MoveToField(e.Field, true);
// Insert image and specify its size
Shape shape = builder.InsertImage((byte[])e.FieldValue);
shape.HRef = "http://www.aspose.com/Community/Forums/75/ShowForum.aspx";
shape.ScreenTip = "Aspose.Words Support Forums";
e.Field.Remove();
}
}
Best regards,