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.j">
    </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>
      FlowerDocs - 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 Activité de service entre la passerelle et l’événement de fin rejeté et nommez là Generate HTML file
  • Sélectionnez le Type Fichier/Générer à partir d’un modèle
  • Valorisez les champs suivants :
    • Modèle : document-rejected
    • Nom : rejected
    • Variable de sortie : tempFileId


Lors de cette étape, à partir du modèle, 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 temporaire en PDF :

  • Ajoutez une activité de service et nommez la Convert file
  • Sélectionnez le type Fichier/Convertir un fichier temporaire
  • Valorisez les champs suivants :
    • Identifiant du fichier : ${tempFileId.getValue()} indiquant le fichier HTML temporaire à convertir
    • Variable de sortie : 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 Evènement après une erreur sur la tâche Convert file :

  • Cliquez sur la tâche Convert file
  • Ajoutez un Evénement intermédiaire
  • Glissez-le sur le bord de la tâche
  • Changez le type de l’événement (en cliquant sur la clé) pour avoir un Evènement après une erreur


Cet Evènement après une erreur 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’Evènement après une erreur à la suite du processus !