2016-08-01 66 views
0

我嘗試使用itext創建pdf並在富文本中添加此文件。 我創建的PDF沒關係,但是當我想將文件放入富文本文件中時,我的文檔Notes中出現錯誤:「null」。XPAGES - 使用getDocumentByUNID添加豐富文本中的文件

我不明白。

這是我的代碼:

// recupere l'id du document ouvert dans l'url 
      String idDocument = XSPContext.getXSPContext(FacesContext.getCurrentInstance()) 
        .getUrl().getParameter("documentId"); 

      // recupere le document 
      Session session = Factory.fromLotus(Utils.getSession(), Session.class, null); 
      Database db = session.getCurrentDatabase(); 
      Document docRepeat = db.getDocumentByUNID(idDocument); 

pieceJointe.copieFichierDansRichText(docRepeat, nomChampSauvegarderPdf, tempDocPdf, 
        nomPdf, REPERTOIRE); 

創建我pdf'file(這是確定)和=>

public void copieFichierDansRichText(Document monDoc, String nomRti, File file, 
     String nameFichier, String chemin) { RichTextItem rtiNew = (RichTextItem) monDoc.createRichTextItem(nomRti); 
    PieceJointe pieceJointe = new PieceJointe(); 
    pieceJointe = buildPieceJointe(file, nameFichier, chemin); 

    rtiNew.embedObject(EmbeddedObject.EMBED_ATTACHMENT, null, pieceJointe.getChemin(), 
      pieceJointe.getNomPiece()); 
    monDoc.computeWithForm(true, false); 
    monDoc.save();} 

的問題,我有

enter image description here

但當我用這個來創建我的pdf沒關係,我有信息? 它只是當我想創建它說空的異常的富文本! 在控制檯我有「org.openntf.domino.utils.DominoUtils $ 4運行」 你能幫我嗎?

編輯 似乎docRepeat是問題

Document docRepeat = db.getDocumentByUNID(idDocument); 

我嘗試docRepeat不爲空,有一個例外指定者....

回答

0

我找到! 這是openntf不起作用。 我必須使用lotus.domino.document =>

public void copieFichierDansRichText(String idDocument, String nomRti, File file, 
     String nameFichier, String chemin) throws NotesException { 

    lotus.domino.Session session = Utils.getSession(); 
    lotus.domino.Database db = session.getCurrentDatabase(); 
    lotus.domino.Document monDoc = db.getDocumentByUNID(idDocument); 

    try { 
     if (monDoc != null) { 
      lotus.domino.RichTextItem rtiNew = (lotus.domino.RichTextItem) monDoc 
        .getFirstItem(nomRti); 
      PieceJointe pieceJointe = new PieceJointe(); 
      pieceJointe = buildPieceJointe(file, nameFichier, chemin); 

      rtiNew.embedObject(EmbeddedObject.EMBED_ATTACHMENT, "", pieceJointe.getChemin() 
        + pieceJointe.getNomPiece(), pieceJointe.getNomPiece()); 
      monDoc.computeWithForm(true, true); 
      monDoc.save(true); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

} 
+1

使用Lotus API – jpishko

+0

時,是的,我會添加此感謝rtiNew.recycle()不要忘了在你的Domino對象調用循環(); monDoc.recycle(); db.recycle();但是對於我所做的或沒有的會話? – sissi49

+1

我也回收會話。我已經看到衝突的信息是否需要,以保證安全我在不再需要它時回收會話。 – jpishko