2016-08-01 37 views
0

Ich versuche, eine PDF mit ITEXT zu erstellen und diese in einem Rich-Text hinzuzufügen. Ich erstelle die PDF-Datei, es ist in Ordnung, aber wenn ich die Datei in den Rich-Text setzen möchte, habe ich einen Fehler: "Null" in meinem Dokument Notes.XPAGES - fügen Sie eine Datei in einem Rich-Text mit getDocumentByUNID

Ich verstehe nicht.

Dies ist mein Code:

// 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); 

ich meine pdf'file schaffen (es ist in Ordnung) und =>

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();} 

Das Problem i

enter image description here

haben aber wenn ich das benutze, um mein pdf zu erstellen, ist es in Ordnung, ich habe die Informationen ???? es ist nur, wenn ich den Rich Text erstellen will, dass es null Ausnahme sagt! In der Konsole habe ich "org.opentnt.domino.utils.DominoUtils $ 4 run" Könnten Sie mir helfen?

EDIT es scheint, dass das Problem docRepeat

Document docRepeat = db.getDocumentByUNID(idDocument); 

Ich versuche docRepeat nicht null ist, gibt es eine Ausnahme toArray ....

Antwort

0

finde ich ist! Es ist openntf, die nicht funktionieren. muss ich verwenden 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

Sie nicht recyceln zu nennen vergessen() auf Domino-Objekte, wenn die API-Lotus mit – jpishko

+0

ja ich werde diesen Dank hinzufügen rtiNew.recycle(); monDoc.recycle(); db.recycle(); aber für die sitzung mache ich oder nicht? – sissi49

+1

Ich recycle Sitzung auch. Ich habe widersprüchliche Informationen darüber gesehen, ob es erforderlich ist oder nicht, um sicher zu sein. Ich recycle die Sitzung, wenn ich sie nicht mehr brauche. – jpishko