用Java将InputStream的内容写入RichTextItem并附加到Notes文档



我可以将文件附加到作为InputStream接收的domino文档的RichTextItem。以下是代码片段:

attachDocument(InputStream is){
    .....
    File attFile = saveInputStr(is);
    Document attdoc = testdb.createDocument();
    attDoc.replaceItemValue("Form", "formAttachment");
    RichTextItem rti = (RichTextItem) attDoc.getFirstItem("attachment");
    rti.embedObject(EmbeddedObject.EMBED_ATTACHMENT, "", attFile .getPath(), attFile .getName());
    .....
}

这很好用。但是,如果我不想将文件写入磁盘,比如我将其保存到上面片段中的File,即attFile,该怎么办。有没有一种方法可以将InputStream的内容写入一个文件(可能是使用一些notes文档),并在不保存的情况下将其附加到磁盘上。

我实际上找到了问题的解决方案。也许这对有帮助

attachDocument(InputStream is){
        .....
        //File attFile = saveInputStr(is);
        Document attdoc = testdb.createDocument();
        attDoc.replaceItemValue("Form", "formAttachment");
        //RichTextItem rti = (RichTextItem) attDoc.getFirstItem("attachment");
        //rti.embedObject(EmbeddedObject.EMBED_ATTACHMENT, "", attFile .getPath(), attFile .getName());
        attDoc.getFirstItem("attachment");
        Stream stream = DominoUtils.getCurrentSession().createStream();
        stream.write(IOUtils.toByteArray(is));
        MIMEEntity me = attDoc.createMIMEEntity("attachment"); 
        me.setContentFromBytes(stream, "application/pdf", MIMEEntity.ENC_IDENTITY_8BIT);
        is.close();
        attdoc.save();
        .....
    }

通过JAVA API(或LotusScript,COM),除了embedObject方法之外,我看不到任何方法可以将附件添加到富文本项。不幸的是,embedObject方法只获取一个指向要导入的文件位置的字符串。如果没有传入实际对象的方法,似乎需要将文件放在磁盘上并传递该文件的路径。

相关内容

  • 没有找到相关文章

最新更新