Сохранение письма в 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);