【问题标题】:Save Outlook mailitem body as PDF将 Outlook 邮件项正文另存为 PDF
【发布时间】:2014-10-17 08:46:45
【问题描述】:

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

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

【问题讨论】:

    标签: c# outlook rtf


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      您可以不将文件保存为 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;在标题中

      【讨论】:

        【解决方案3】:

        应该很简单:

        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

        【讨论】:

          猜你喜欢
          • 2015-05-02
          • 2016-06-14
          • 1970-01-01
          • 2019-04-24
          • 2018-05-11
          • 2014-04-22
          • 1970-01-01
          • 2021-07-20
          • 2021-06-02
          相关资源
          最近更新 更多