2014-03-07 57 views
0

我想在Notes文檔中添加一些圖片,但不是附件圖片,只是一個「導入」圖片。用多米諾筆記中的java添加圖片

我試圖做到這一點:它與附件圖片很好,但我不想那樣。 你能幫我嗎?

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

除非您使用Notes C API,這是Java的一個難題,否則您將無法直接創建它。

如果您始終想要使用相同的圖像(或有限集合中的一個),並且該圖像不在表格單元格或類似圖像中,則可以手動創建參考文檔,其富文本字段僅包含圖像想。然後使用RichTextItem的方法將參考文檔的富文本附加到您在適當位置創建的文檔中。

如果由於某種原因而無法使用,您可以創建所需文檔(包括圖像)的DXL描述,然後使用DXLImporter對象導入它。

要查看您需要生成的DXL示例,請手動創建一個示例文檔,然後導出它(或者在不編寫代碼的情況下執行此操作,在Domino Designer中創建一個Page design元素並使用Tools/DXL實用程序/查看器菜單)。

您可以在內存中創建文檔,並在需要圖像的位置使用佔位符填充富文本。在不保存文檔的情況下,使用DXLExporter將其導出,然後使用XML解析器(或者只是一個字符串搜索)來查找佔位符,並將其替換爲base64編碼的圖像內容幷包含元素。

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

+0

謝謝你的幫助,但圖片總是會有所不同... – sissi49

+0

我的回答涵蓋了圖片永遠不同的情況,以「如果這不會因爲某種原因服務」開頭。在不瞭解圖像數據來源的情況下,我很難更具體,但是您需要將圖像數據轉換爲base64符號才能插入DXL。有一些示例代碼用於將磁盤上的映像文件(例如)轉換爲base64,我介紹過他提到的openntf項目。 –

+0

如果您知道寫入數據的格式,您也可以使用HTML和MIME做到這一點。要了解如何使用「另存爲MIME」rtf手動創建文檔並使用MIME API分析它。 –

相關問題