将 MSG 保存为 PDF
Contents
[
Hide
]
本文展示了如何使用 Aspose.Email 将电子邮件转换为 PDF。Aspose.Email for Java 处理 Microsoft Outlook 功能,但无法直接转换为 PDF。为了解决此问题,本文的示例先使用 Aspose.Email 将邮件转换为 MHTML 流,然后使用 Aspose.Words for Java 加载该 MHTML 流并将其保存为 PDF。
电子邮件也可以包含附件。由于每个附件可能具有不同的媒体类型,Aspose.Email 在转换为 MHTML 时会忽略这些附件,即仅将邮件中的内联图片包含在 MHTML 中,普通附件会被忽略。
将电子邮件转换为 PDF
以下代码演示了使用 Aspose.Email 与 Aspose.Words for Java 结合将电子邮件转换为 PDF。涉及以下步骤:
- 使用 MailMessage 加载电子邮件
- 将电子邮件保存为 MemoryStream 且格式为 MHTML
- 使用 Aspose.Words 加载流
- 将消息保存为 PDF
源电子邮件消息如下所示:
|
| | :- | |图示:源 MSG 文件 |
|
| | :- | |图示:已转换的 PDF 文件 | Java
static void EmailToPdf(String emailPath) throws Exception
{
FileInputStream fstream=new FileInputStream(emailPath);
MailMessage eml = MailMessage.load(fstream);
//Save the Message to output stream in MHTML format
ByteArrayOutputStream emlStream = new ByteArrayOutputStream();
eml.save(emlStream, SaveOptions.getDefaultMhtml());
//Load the stream in Word document
LoadOptions lo = new LoadOptions();
lo.setLoadFormat(LoadFormat.MHTML);
Document doc = new Document(new ByteArrayInputStream(emlStream.toByteArray()), lo);
//Save to disc
doc.save("About Aspose.Pdf", SaveFormat.PDF);
//or Save to stream
ByteArrayOutputStream foStream = new ByteArrayOutputStream();
doc.save(foStream, SaveFormat.PDF);
}