Hi
I have Apple text and Apple image needs to be mail merged <>, <> in word dcoument, How to do this? Please advice.
Or, is there any way i can move the builder to this <> tag holder and insert the image. Please advice
Regards
Showji
Hi
I have Apple text and Apple image needs to be mail merged <>, <> in word dcoument, How to do this? Please advice.
Or, is there any way i can move the builder to this <> tag holder and insert the image. Please advice
Regards
Showji
Hi Showji,
Thanks for your interest in Aspose.Words for Java.
1 - You can move the cursor to a specific location in document and then insert text/image using DocumentBuilder class.
2 - You can replace a merge field with text/image using mail merge functionality of Aspose.Words. Please refer to the following sections of the documentation which outline everything you need to know about mail merge:
About Mail Merge in Aspose.Words
Prepare a template Document
Simple Mail Merge Explained
How to Execute Simple Mail Merge
Moreover, to be able to insert images at a merge field, you first need to configure merge field’s name according to the following syntax in your template document:
Image:MyFieldName
Then all you have to do is pass Image URLs to the mail merge engine as follows:
doc.getMailMerge().execute(
new String[] { "MyFieldName" },
new Object[] { "C:\\Temp\\Aspose.Words.png" });
Please let us know if we can be of any further assistance.
Best regards,
Intead of moving the cursor to specific location using para number, can i move the cursor to a mergefiled <>?
Is it mandatory to have the image merge field to be of “Image:fieldnmae” syntax pattern?
Instead of passing the Image path, can i pass the bytes array of the image?
Thank you for the information.
Regards
Showji
Hi Showji,
Thanks for your inquiry.
DocumentBuilder.MoveToMergeField Method (String)
DocumentBuilder.MoveToMergeField Method (String, Boolean, Boolean)
Here is sample code to achieve this:
Document doc = new Document(getMyDir() + "in.docx");
DocumentBuilder builder = new DocumentBuilder(doc);
builder.moveToMergeField("pic");
builder.insertImage(getMyDir() + "aspose.words.png");
doc.save(getMyDir() + "out.docx");
2 & 3. If you want to control how data is inserted into merge fields during a mail merge operation, you need to implement IFieldMergingCallback Interface. This interface has a IFieldMergingCallback.ImageFieldMerging event which 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 Image object to the mail merge engine so it is inserted into the document. The following article will be helpful as well:
https://docs.aspose.com/words/java/working-with-images/
However, if you just want to move the cursor to a merge field and then insert image at this place using DocumentBuilder, then there is no need to prefix merge fields with “Image:” marker.
Best regards,