在domino笔记中添加带有java的图片

时间:2014-03-07 17:01:37

标签: java image add lotus-domino

我试图在Notes文档中添加一些图片但不是附件图片,只是一个" import"图片。

我试图这样做:附带图片很好,但我不想这样做。 你能帮帮我吗?

public void modificationDocNotes() throws ExceptionWS {

    String chemin;
    RichTextItem img = null;
    try {           
        monDoc.replaceItemValue("Status", "");
        monDoc.removeItem(docDTO.getNomChampNotes());   
        img = monDoc.createRichTextItem(docDTO.getNomChampNotes());                     


        for(PieceJointeDTO piecejointeDTO : docDTO.getPiecesJointesDTO())
        {
            chemin = docDTO.getRepertoire() + piecejointeDTO.getNomPiece();             

            img.embedObject(EmbeddedObject.EMBED_ATTACHMENT, null, chemin, null);                   


            if (docDTO.getNomChampCommentaire() != null)
            {
                monDoc.replaceItemValue(docDTO.getNomChampCommentaire(), piecejointeDTO.getCommentairePiece());
            }               
        }           
        monDoc.replaceItemValue("Status", "Ferme");
        monDoc.save(true,true);
        img.recycle();
        monDoc.recycle();                       

        System.out.println("modification d'un document Notes");
    } catch (NotesException e) {
        throw new ExceptionWS("ERREUR Notes sur méthode modificationDocNotes() sur Web Service RemonteeBlob RemonteeBlobDAO" , e, logDTO);
    }       
}

bye ant非常感谢你的帮助!


我尝试用html做同样的事情,但它不起作用!

private void buildDocNotes() throws NotesException {
    String chemin;
    RichTextItem img = null;
    img = monDoc.createRichTextItem(docDTO.getNomChampNotes()); 

    StringBuilder builder = new StringBuilder("<html><head>");
    builder.append("MIME-Version: 1.0");        
    builder.append("Content-type: text/html; charset=utf-8");
    builder.append("</head><body>");
    for(PieceJointeDTO piecejointeDTO : docDTO.getPiecesJointesDTO())
    {
        chemin = docDTO.getRepertoire() + piecejointeDTO.getNomPiece();             

        builder.append("<img src='" + piecejointeDTO.getNomPiece() + "'/><br/>");

        img.embedObject(EmbeddedObject.EMBED_ATTACHMENT, null, chemin, null);                   

        if (docDTO.getNomChampCommentaire() != null)
        {
            monDoc.replaceItemValue(docDTO.getNomChampCommentaire(), piecejointeDTO.getCommentairePiece());
        }   
        piecejointeDTO.setResultat("O");
    }           

    builder.append("</body></html>");

    monDoc.appendItemValue(docDTO.getNomChampNotes(), builder.toString());
    monDoc.replaceItemValue("Status", "Ferme");
    monDoc.save(true,true);
    img.recycle();
    monDoc.recycle();
}
你可以帮帮我吗? 非常感谢!

1 个答案:

答案 0 :(得分:1)

除非你使用Notes C API,这是Java的难点,否则你将无法直接创建它。

如果您总是想使用相同的图像(或有限的一组),并且图像不在表格单元格或类似图像中,您可以手动创建其富文本字段仅包含您想要的图像的参考文档。然后使用RichTextItem的方法将引用文档的富文本附加到您在适当位置创建的文档中。

如果由于某种原因无法使用,您可以创建所需文档的DXL描述,包括图像,然后使用DXLImporter对象导入它。

要查看您需要生成的DXL示例,请手动创建示例文档并将其导出(或者在不编写代码的情况下执行此操作,在Domino Designer中创建Page设计元素,然后使用Tools / DXL导出它)实用程序/查看器菜单)。

您可以在内存中创建文档,并使用您想要图像的占位符填充富文本。在不保存文档的情况下,使用DXLExporter导出文档,然后使用XML解析器(或只是字符串搜索)找到占位符并将其替换为base64编码的图像内容和封闭元素。

openntf.org中的LotusScript Gold Collection项目包含的示例可能对您有所帮助,但在LotusScript中也是如此。