将Outlook mailitem正文保存为PDF

时间:2014-10-17 08:46:45

标签: c# outlook rtf

我正在使用Outlook和C#,我的学校练习是在不使用额外软件的情况下以pdf格式转换电子邮件正文。在我的情况下,我想保留电子邮件文本格式以解决我的问题我已经考虑转换RTF文件中的电子邮件正文,然后通过C#使用Word应用程序打开此RTF文件并将其另存为PDF。

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

3 个答案:

答案 0 :(得分:4)

@JoshH提供的答案很好。事实上它帮助了我,但唯一的事情是它不包括电子邮件正文中存在的嵌入文件,如图像。 如果要这样做,请将正文格式设置为HTML而不是“FormatRichText”:

MailItem.BodyFormat = OlBodyFormat.olFormatHTML;
MailItem.SaveAs("FilePath", OlSaveAsType.olRTF)

话虽如此,我提供的代码不包括对电子邮件本身的附件,即不在正文中。

我希望这有助于某人。

答案 1 :(得分:1)

应该如此简单:

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

MailItem.BodyFormat属性:

http://msdn.microsoft.com/en-us/library/office/ff869979(v=office.15).aspx

MailItem.SaveAs方法:

http://msdn.microsoft.com/en-us/library/office/ff868727(v=office.15).aspx

答案 2 :(得分:1)

您可以不将文件另存为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);

使用Word = Microsoft.Office.Interop.Word;在标题