Génération de documents

cancel
Showing results for 
Search instead for 
Did you mean: 
boutaina
Member II

Génération de documents

Bonjour tout le monde,

Je viens de débuter avec Alfresco et je dois implémenter une fonctionnalité qui permet de générer un document PDF à partir de plusieurs documents.

Est ce que vous pouvez me dire comment je devrais procéder et ou est ce que je pourrais trouver de la documentation dans ce sens.

Merci d'avance pour vos réponses.
2 Replies
rguinot
Customer

Re: Génération de documents

pas disponible en standard sans développement spécifiques, mais je crois qu'il y a sur forge.alfresco.com des extensions avec des fonctionnalités similaires
zomurn
Member II

Re: Génération de documents

Tiens donc, ca me rappelle un bout de code…voici ci-dessous un exemple "classique" : Un bouton imprimer qui permet de générer un pdf unique comprenant le document (page1) et les meta associée (page2). Une popup s'ouvre affichant le pdf final (2 pages). Tout ceci grâce à la librairie "iText" :

public void actionBoutonImprimer(NodeRef pNodeRef, String pCategory)
         throws IOException, COSVisitorException, InterruptedException {

      String lFileName = (String) nodeService.getProperty( pNodeRef,
            ContentModel.PROP_NAME );

      ContentReader lContentReader = contentService.getReader( pNodeRef,
            ContentModel.PROP_CONTENT );
      File file1 = File.createTempFile( "TempFile", ".pdf" );
      lContentReader.getContent( file1 );

      File file2 = null;
      file2 = createMetaFile( pNodeRef, pCategory );
      File file3 = File.createTempFile( "TempFile3", ".pdf" );

      PDFMergerUtility pdfmerge = new PDFMergerUtility();
      pdfmerge.setDestinationFileName( file3.getPath() );
      pdfmerge.addSource( file1 );
      pdfmerge.addSource( file2 );
      pdfmerge.mergeDocuments();

      FacesContext fc = FacesContext.getCurrentInstance();
      HttpServletResponse resp = (HttpServletResponse) fc
            .getExternalContext().getResponse();

      int length = 0;
      ServletOutputStream op = resp.getOutputStream();

      resp.setContentType( "application/pdf" );
      resp.setContentLength( (int) file3.length() );
      resp.setHeader( "Content-Disposition", "inline; filename=\""
            + lFileName + "\"" );

      byte[] bbuf = new byte[1];
      DataInputStream in = new DataInputStream( new FileInputStream( file3 ) );

      while ((in != null) && ((length = in.read( bbuf )) != -1))
      {
         op.write( bbuf, 0, length );
      }

      in.close();
      op.flush();
      op.close();

      file1.delete();
      file2.delete();
      file3.delete();
   }