直接从NotesDocument获取NotesRichTextItem

时间:2014-01-26 16:59:26

标签: c# attachment lotus-domino lotusscript

我的问题:我在c#代码中;我得到了笔记文件。我无法从文档中获取notesrichtextitem(direcly)。我现在才得到笔记。 因此,我需要直接获取notesrichtextitem,或者将notesitem转换为notesrichtextitem。

我想在RichText字段中添加或添加更多附件。

以下是我如何向lotus文档添加附件的一些信息。它工作正常,但我仍然不喜欢这段代码。 请告诉我如何立即去做!??

我正在使用lotus中的notesrichtext项目,但是对于我的项目,我必须使用c#进行编码,并且连接到notesrichtextitem是一个大问题。 实际上,没有支持将对象从文档(lotus)获取到notesrichtextitem(c#中的对象)。 所以我找到了一个新的解决方案来超越莲花!^ __ ^ @!。

我在c#中编码。使用.net 2.0;使用Interop.Domino 1.2.0.0; VS 2010;

这是我的演示代码(它正在运行):

 //start demo code   
        NotesItem rtf2 =  dockey.GetFirstItem(RTfield.ToString());
        if (rtf2 != null)
        {
            dockey.RemoveItem(RTfield.ToString());
        }
        // just 1 item is insert;
        NotesRichTextItem rtf = dockey.CreateRichTextItem(RTfield.ToString());   
        rtf.EmbedObject(EMBED_TYPE.EMBED_ATTACHMENT, "", Dfilepath); // set attachment to richtextfield
        dockey.Save(true, false);
//end demo code.

如您所见,步骤如下:

  1. getfirstitem(返回NOTESITEM)=>我不能这样做 任何持有notesrichtextitem并使用EmbedObject添加的东西 附件DIRECLY。
  2. 删除存在的notesitem
  3. 创建新的CreateRichTextItem(使用相同名称)
  4. 使用您拥有的notesrichtextitem对象执行任何操作。
  5. 希望我的解决方案可以帮助任何人完成noterichtextitem。 我正在尝试更多地了解富文本字段。 如果有人有一个很好的解决方案,可以直接使用来自文档对象的notesrichtextitem工作,请告诉我。

1 个答案:

答案 0 :(得分:0)

NotesRichTextItem类继承自NotesItem类。它具有NotesItems的所有属性和方法,另外还有一些RichText特定的属性和方法。

GetFirstItem()返回NotesItem个对象,如果是RichText项,则会自动返回NotesRichTextItem个对象。这就是你可以写的原因:

NotesRichTextItem rtf = dockey.GetFirstItem(RTfield.ToString());
rtf.EmbedObject(EMBED_TYPE.EMBED_ATTACHMENT, "", Dfilepath); // set attachment to richtextfield
dockey.Save(true, false);

Interop.Domino通过COM使用Notes类。因此,Notes类应该在LotusScript中工作。您可能需要将GetFirstItem()的结果转换为(NotesRichTextItem)