Génération d'un PDF

Avant de commencer

Avant de démarrer ce module, il est nécessaire d’avoir suivi le module Concevoir mon premier processus afin d’avoir le processus Document_Validation associé.

Dans ce module, nous allons utiliser le template HTML document_rejected suivant :


Template document_rejected

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
  <head>
    <script type="text/javascript" language="javascript" src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.7.0/dropzone.min.js">
    </script>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.7.0/dropzone.min.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" language="javascript" src="../../../scripts/vendor.min.js">
    </script>
    <script type="text/javascript" language="javascript" src="../../../scripts/jquery.scrollbar.js">
    </script>
    <script type="text/javascript" language="javascript" src="../../../scripts/flower.js?v=${project.version}">
    </script>
    <script type="text/javascript" language="javascript" src="../../../flowergwt/flowergwt.nocache.js?v=${project.version}">
    </script>
    <link href="../../../css/bootstrap.min.css?v=4.1.3" rel="stylesheet" type="text/css" />
    <link href="../../../css/style.css" rel="stylesheet" type="text/css" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="format-detection" content="date=no" />
    <meta name="format-detection" content="address=no" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="x-apple-disable-message-reformatting" />
    <title>
      Flower - Document rejected
    </title>
    <style type="text/css" media="screen">
      @import url('https://fonts.googleapis.com/css?family=Barlow+Condensed|Quicksand&display=swap')
      /* Linked Styles */
      h2 {
      text-align: center;
      }
    </style>
  </head>
  <body class="authentication-bg authentication-bg-pattern">
    <h2 class="text-center">
      Demande de validation rejetée
    </h2>
    <br/>
    <p class="text-muted font-14 mt-2">
      Bonjour 
      <br/>
      Le document a malheureusement été rejeté le  
      <b th:text="${component.getData().getLastUpdateDate()}">
      </b>
    </p>
  </body>
</html>

Génération du fichier

Les templates HTML permettent de générer des fichiers HTML complexes. Les variables d’un processus peuvent être utilisées, durant la génération, pour valoriser ou conditionner des zones textuelles du fichier.


Reprenez votre processus Document_Validation. Dans l’onglet Diagramme :

  • Ajoutez une Service Task entre le Gateway et l’End event rejeté et nommez là Generate HTML file
  • Utilisez l’Element Template Generate file
  • Valorisez les champs suivants :
    • Template : document-rejected
    • Generated file name : rejected
    • Result Variable : tempFileId


Lors de cette étape, à partir du template, un fichier HTML temporaire sera créé avec les variables résolues. Ce fichier sera stocké dans la variable Camunda nommée tempFileId.

Conversion en PDF

Afin de convertir le fichier HTML généré à partir du template, nous allons utiliser le JavaDelegate permettant de convertir un fichier en PDF :

  • Ajoutez une Service Task et nommez la Convert file
  • Sélectionnez l’Element Template Convert temporary file
  • Valorisez les champs suivants :
    • File ID : ${tempFileId.getValue()} indiquant le fichier HTML temporaire à convertir
    • Output : tempFileId


Lors de cette étape, le fichier HTML sera converti en PDF. La variable Camunda tempFileId contient maintenant l’identifiant du fichier PDF.

Gestion des erreurs

Lors de la conversion en PDF, des erreurs peuvent survenir en raison de problématiques techniques, de fichier invalide ou de format non supporté. Ces erreurs bloquent la suite de votre processus. Il est donc nécessaire de gérer ces erreurs en ajoutant un Error Boundary Event sur la tâche Convert file :

  • Cliquez sur la tâche Convert file
  • Ajoutez un Boundary Event
  • Glissez-le sur le bord de la tâche
  • Changez le type de l’event (en cliquant sur la clé) pour avoir un Error Boundary Event


Cet Error Boundary Event va permettre d’intercepter une éventuelle erreur. Dans notre cas, nous allons juste continuer notre processus à l’apparition de l’erreur.
N’oubliez pas de lier l’Error Boundary Event à la suite du processus !