Outlook Message files (.msg) with embedded image converted to MHTML format MS Word has image out of bounds. The image scale/layout metadata is lost in converted MHTML MS Word document and image is out of bounds (cut off).
Code sample:
MailMessage message = MailMessage.load(msgInputStream, MessageFormat.getMsg());
ByteArrayOutputStream messageStream = new ByteArrayOutputStream();
message.save(messageStream, MailMessageSaveType.getMHtmlFromat());
messageStream.close();
com.aspose.words.Document mhtmlDoc = new com.aspose.words.Document(new ByteArrayInputStream(messageStream.toByteArray()));
Aspose Email library version: 3.2.0.0
Hi Andrei,
Thank you for contacting support. You are using an old version of Aspose.Email API. Please download and use the latest versions of Aspose.Email for Java 6.9.0 and Aspose.Words for Java 16.8.0 APIs and let us know how that goes on your side. We’ve converted your source message file to MHTML, and then loaded to Aspose.Words API. We did not notice any error or incorrect layout of the image. We have attached the output MHTML file for your kind reference.
[Java]
<span class=“rem” style=“color: rgb(0, 128, 0); font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”>// load a message file<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
MailMessage message = MailMessage.load(“C:\AD\test775\test.msg”, <span class=“kwrd” style=“color: rgb(0, 0, 255); font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”>new<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”> MsgLoadOptions());<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
ByteArrayOutputStream messageStream = <span class=“kwrd” style=“color: rgb(0, 0, 255); font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”>new<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”> ByteArrayOutputStream();<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
<span class=“rem” style=“color: rgb(0, 128, 0); font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”>// save MHTML file in the output stream<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
message.save(messageStream, com.aspose.email.SaveOptions.getDefaultMhtml());<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
<span class=“rem” style=“color: rgb(0, 128, 0); font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”>// load an MHTML file in the Aspose.Words API<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
com.aspose.words.Document mhtmlDoc = <span class=“kwrd” style=“color: rgb(0, 0, 255); font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”>new<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”> com.aspose.words.Document(<span class=“kwrd” style=“color: rgb(0, 0, 255); font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”>new<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”> ByteArrayInputStream(messageStream.toByteArray()));
MailMessage message = MailMessage.load(“C:\AD\test775\test.msg”, <span class=“kwrd” style=“color: rgb(0, 0, 255); font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”>new<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”> MsgLoadOptions());<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
ByteArrayOutputStream messageStream = <span class=“kwrd” style=“color: rgb(0, 0, 255); font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”>new<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”> ByteArrayOutputStream();<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
<span class=“rem” style=“color: rgb(0, 128, 0); font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”>// save MHTML file in the output stream<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
message.save(messageStream, com.aspose.email.SaveOptions.getDefaultMhtml());<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
<span class=“rem” style=“color: rgb(0, 128, 0); font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”>// load an MHTML file in the Aspose.Words API<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
com.aspose.words.Document mhtmlDoc = <span class=“kwrd” style=“color: rgb(0, 0, 255); font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”>new<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”> com.aspose.words.Document(<span class=“kwrd” style=“color: rgb(0, 0, 255); font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”>new<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”> ByteArrayInputStream(messageStream.toByteArray()));
<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
Please let us know in case of any confusion or questions.
Thank you, provided sample looks good.
Can we use existing license (for older Apose libs) or we have to purchase a new license for the latest Email/Work Aspose libraries? I sent request to our company IT department but if you know answer it will save time…
Thanks again for fast response and help!
Hi Andrei,
You may please check the SubscriptionExpiry date of your license and can use all libraries which are published before this date. If the required library is published after this date, you need to buy new license.
Please feel free to write us back if you have any other query in this regard.