Записване на имейл като PDF

Тази статия показва как да конвертирате имейл съобщение в PDF, използвайки Aspose.Email. Aspose.Email за .NET се занимава с мрежови протоколи и функции на Microsoft Outlook и не поддържа директна конверсия към PDF. За да се преодолее това, примерите в тази статия използват Aspose.Email, за да конвертират имейл съобщението в MHTML поток, след което използват Aspose.Words за .NET, за да заредят MHTML потока и да го запазят като PDF. Имейл съобщението може също да съдържа прикачени файлове. Тъй като всеки прикачен файл може да е от различен тип медия, Aspose.Email игнорира тези прикачени файлове при конвертирането в MHTML, т.е. само вградените изображения в съобщението ще бъдат част от MHTML, а обикновените прикачени файлове ще бъдат игнорирани.

Конвертиране на имейл съобщение в PDF

Следният код показва конвертиране на имейл съобщения в PDF, използвайки Aspose.Email в комбинация с Aspose.Words за .NET. Това включва следните стъпки:

  1. Заредете имейл съобщението, използвайки MailMessage
  2. Запазете имейл съобщението в MemoryStream като MHTML
  3. Заредете потока с помощта на Aspose.Words
  4. Запазете съобщението като PDF

Изходното имейл съобщение може да се види по следния начин:

todo:image_alt_text

Конвертираният PDF е показан на следната снимка:

todo:image_alt_text

Следният фрагмент от код показва как да конвертирате имейл съобщения в PDF.

string dataDir = RunExamples.GetDataDir_KnowledgeBase();
MailMessage mailMsg = MailMessage.Load(dataDir + "message3.msg");
MemoryStream ms = new MemoryStream();
mailMsg.Save(ms, Aspose.Email.SaveOptions.DefaultMhtml);

// create an instance of LoadOptions and set the LoadFormat to Mhtml
var loadOptions = new Aspose.Words.Loading.LoadOptions();
loadOptions.LoadFormat = LoadFormat.Mhtml;

// create an instance of Document and load the MTHML from MemoryStream
var document = new Aspose.Words.Document(ms, loadOptions);

// create an instance of HtmlSaveOptions and set the SaveFormat to Html
var saveOptions = new Aspose.Words.Saving.PdfSaveOptions();
document.Save(dataDir + "SaveEmailAsPDF_out.pdf", saveOptions);