【问题标题】:Outlook AppointmentItem - How do I programmatically add RTF to its Body?Outlook AppointmentItem - 如何以编程方式将 RTF 添加到其正文?
【发布时间】:2012-10-01 11:36:13
【问题描述】:

我想将AppointmentItemBody 设置为包含嵌入图像的RTF 字符串。设置Microsoft.Office.Interop.Outlook.AppointmentItem.Body 会导致RTF 按原样出现在约会中。

我尝试使用 Redemption 来包装约会并公开 RTFBody 属性,但是 RTF 格式(包括图像)丢失了。

在此示例(没有嵌入图像)中,RTF 按原样显示在文档中。有没有人设法做到这一点?

var appointment = (AppointmentItem)app.CreateItem(OlItemType.olAppointmentItem);
appointment.Subject = "test subject";
appointment.Start = DateTime.Now;
appointment.End = DateTime.Now.AddHours(1);
appointment.Body = @"{\rtf1\ansi\deff0{\fonttbl{\f0 Arial;}}{\colortbl ;\red0\green0\blue255;}\pard\cf1\f0\fs24 Test}";
appointment.Save();

【问题讨论】:

    标签: outlook


    【解决方案1】:

    我知道的唯一方法是访问 AppointmentItem 的 GetInspector 属性,并使用它来获取用于解析 RTF 格式的底层 WordEditor,例如:

    var doc = appointment.GetInspector.WordEditor as Microsoft.Office.Interop.Word.Document;
    

    然后根据Word Object Model使用doc.Content格式化文档。

    【讨论】:

      【解决方案2】:

      我在这方面看到的最好的信息是按照这个答案: http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/b41acf6f-71c1-4a8b-9662-fbff26ba3a24/

      基本上,这是一个笨拙的两步过程:

      1. 获取对 WordEditor 对象的引用
      2. 使用剪贴板,将格式化的内容复制并粘贴到编辑器中

      说真的微软,你当然可以想出更好的设计。

      【讨论】:

        猜你喜欢
        • 2012-05-02
        • 2013-05-30
        • 2010-12-02
        • 2014-06-11
        • 2018-07-05
        • 2022-05-17
        • 2012-09-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多