如何从文件中读取 rtf 并将其插入到 Outlook 项目的正文中

本文关键字:Outlook 插入 项目 正文 文件 读取 rtf | 更新日期: 2023-09-27 17:55:19

我正在尝试编写一个Outlook加载项,其功能与Microsoft Outlook的插入签名功能非常相似。 我发现的最好和最详细的线程在这里讨论与此类似的东西。

我的代码的问题是内存流,尽管是一个可以从word打开的rtf文件,但返回一个null。

doc = ms as Microsoft.Office.Interop.Word.Document ;

我正在尝试让它工作

    if (selObject is Outlook.AppointmentItem)
    {
        Outlook.AppointmentItem obj = (Outlook.AppointmentItem)selObject;
        Microsoft.Office.Interop.Word.Document doc = obj.GetInspector.WordEditor as Microsoft.Office.Interop.Word.Document;
        if (doc != null)
        {
            String path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
                "Outlook", "Intercall.rtf");
            if (File.Exists(path))
            {
                MemoryStream ms = new MemoryStream();
                Stream fs = new FileStream(path,FileMode.Open);
                fs.CopyTo(ms);
                doc = ms as Microsoft.Office.Interop.Word.Document ;
                fs.Close();
            }
        }
    }

如何从文件中读取 rtf 并将其插入到 Outlook 项目的正文中

您是否期望从 MemoryStream 转换为 Microsoft.Office.Interop.Word.Document 会成功?MemoryStream对Word或任何其他COM对象一无所知。您需要显式创建 Word.Application 对象的实例,使用它来加载 RTF。您还可以在 Outlook 对象模型中使用 Inspector.WordEditor 来获取 Word.Document 对象的实例。