C# 将Outlook邮件项目正文另存为PDF

C# 将Outlook邮件项目正文另存为PDF,c#,outlook,rtf,C#,Outlook,Rtf,我正在使用Outlook和C,我的学校练习是在不使用额外软件的情况下将电子邮件正文转换为pdf格式。在我的例子中,我希望保留电子邮件文本格式,以便解决我的问题,我考虑将电子邮件正文转换为RTF文件,然后使用Word application by C打开此RTF文件并将其保存为PDF 我想知道如何从邮件中获取RTF文件。我在网上发现,可以使用BodyFormat属性将MailItem正文转换为RTF格式,但我不知道如何创建RTF。应该简单到: MailItem.BodyFormat = OlBod

我正在使用Outlook和C,我的学校练习是在不使用额外软件的情况下将电子邮件正文转换为pdf格式。在我的例子中,我希望保留电子邮件文本格式,以便解决我的问题,我考虑将电子邮件正文转换为RTF文件,然后使用Word application by C打开此RTF文件并将其保存为PDF


我想知道如何从邮件中获取RTF文件。我在网上发现,可以使用BodyFormat属性将MailItem正文转换为RTF格式,但我不知道如何创建RTF。

应该简单到:

MailItem.BodyFormat = OlBodyFormat.olFormatRichText;
MailItem.SaveAs("FilePath", OlSaveAsType.olRTF)
MailItem.BodyFormat属性:

MailItem.SaveAs方法:


应该简单到:

MailItem.BodyFormat = OlBodyFormat.olFormatRichText;
MailItem.SaveAs("FilePath", OlSaveAsType.olRTF)
MailItem.BodyFormat属性:

MailItem.SaveAs方法:


@josh提供的答案很好。事实上,它帮助了我,但唯一的一点是它不包括电子邮件正文中的嵌入文件,比如图像。 如果要执行此操作,请将正文格式设置为HTML而不是“FormatRichText”:

MailItem.BodyFormat = OlBodyFormat.olFormatHTML;
MailItem.SaveAs("FilePath", OlSaveAsType.olRTF)
也就是说,我提供的代码不包括电子邮件本身的附件,也就是说,不包含在正文中


我希望这对某人有所帮助。

由@josh提供的答案很好。事实上,它帮助了我,但唯一的一点是它不包括电子邮件正文中的嵌入文件,比如图像。 如果要执行此操作,请将正文格式设置为HTML而不是“FormatRichText”:

MailItem.BodyFormat = OlBodyFormat.olFormatHTML;
MailItem.SaveAs("FilePath", OlSaveAsType.olRTF)
也就是说,我提供的代码不包括电子邮件本身的附件,也就是说,不包含在正文中


我希望这对某人有所帮助。

您无需将文件保存为rtf格式

            Outlook.MailItem mi = selection[1] as Outlook.MailItem;               
            mi.BodyFormat = Outlook.OlBodyFormat.olFormatRichText;
            string fullPath = Path.Combine("SaveLocation", mi.Subject + ".pdf");
            //mi.SaveAs(fullPath, Outlook.OlSaveAsType.olRTF);                
            Word.Document doc = mi.GetInspector.WordEditor;
            doc.SaveAs2(fullPath, FileFormat: Word.WdSaveFormat.wdFormatPDF);

使用using Word=Microsoft.Office.Interop.Word;在页眉中,您可以不将文件保存为rtf格式

            Outlook.MailItem mi = selection[1] as Outlook.MailItem;               
            mi.BodyFormat = Outlook.OlBodyFormat.olFormatRichText;
            string fullPath = Path.Combine("SaveLocation", mi.Subject + ".pdf");
            //mi.SaveAs(fullPath, Outlook.OlSaveAsType.olRTF);                
            Word.Document doc = mi.GetInspector.WordEditor;
            doc.SaveAs2(fullPath, FileFormat: Word.WdSaveFormat.wdFormatPDF);
使用using Word=Microsoft.Office.Interop.Word;在标题中