Lưu file MSG dưới dạng PDF
Contents
[
Hide
]
Bài viết này chỉ cách chuyển một tin email sang PDF bằng Aspose.Email. Aspose.Email cho Java hỗ trợ các tính năng của Microsoft Outlook, nhưng không thể thực hiện chuyển đổi trực tiếp sang PDF. Để khắc phục, các mẫu trong bài này sử dụng Aspose.Email để chuyển tin email sang luồng MHTML, sau đó dùng Aspose.Words cho Java để tải luồng MHTML và lưu thành PDF.
Một tin email cũng có thể chứa các tệp đính kèm. Vì mỗi tệp đính kèm có thể có loại media khác nhau, Aspose.Email bỏ qua các tệp này khi chuyển sang MHTML, tức là chỉ các ảnh nhúng trong tin sẽ là một phần của MHTML và các tệp đính kèm thông thường sẽ bị bỏ qua.
Chuyển đổi tin email sang PDF
Đoạn mã dưới đây cho thấy cách chuyển tin email sang PDF bằng Aspose.Email kết hợp với Aspose.Words cho Java. Điều này bao gồm các bước sau:
- Tải tin email bằng MailMessage
- Lưu tin email vào MemoryStream dưới dạng MHTML
- Tải luồng bằng Aspose.Words
- Lưu tin dưới dạng PDF
Tin email nguồn có thể được xem như sau:
|
| | :- | |Hình: Tệp MSG Gốc |
|
| | :- | |Hình: Tệp PDF đã chuyển đổi | 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);
}