Сохранение почтового элемента Outlook со встроенным изображением как части почты

#c# #pdf #outlook #word

Вопрос:

По какой-то причине сохранение почтового элемента Outlook со встроенным изображением приводит к тому, что файл PDF теряет встроенное изображение вместо сохранения изображения вместе с почтовым элементом. Он видит изображение как вложение, а не отдельно от самой почты. Что странно, однако, так это то, что это происходит только при сохранении в PDF, если я пытаюсь сохранить элемент электронной почты в .RTF, изображение не потеряно.

Вот как я сохраняю сообщение электронной почты:

 Microsoft.Office.Interop.Word.Document doc = mailItem.GetInspector.WordEditor;
doc.SaveAs(PDFpath, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF);
 

И у меня есть оператор if, который гарантирует, что встроенное изображение не будет сохранено в качестве вложения:

 if (!mailItem.HTMLBody.Contains(aFileName))
{
  a.SaveAsFile(attachmentPath);
  contentEditor.AddDocumentAttachment(attachmentPath, aFileName);
  contentEditor.Save(PDFpath);
}
 

Редактор содержимого здесь предназначен для привязки вложений к сохраненному PDF-файлу.

Ответ №1:

SaveAs принимает OlSaveAsType формат в качестве второго параметра, нет WdSaveFormat .

Формат PDF не поддерживается OlSaveAsType : https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.outlook.olsaveastype?view=outlook-pia

Вы можете попробовать сохранить в формате MHTML ( OlSaveAsType.olMHTML ), открыть файл в Word с помощью объектной модели Word и сохранить его в формате PDF.

Комментарии:

1. Ну, я не использую сохранения Outlook, я использую сохранение взаимодействия Word, которое принимает параметр WdSaveFormat. Он отлично работает для преобразования документа, содержащего только текст, но если присутствует изображение, оно не будет отображаться. Действительно ли это потому, что я могу использовать только сохранения Outlook, а не взаимодействие со словом?