OSBI.FR - Open Source Business Intelligence

Exporter en PDF vos tableaux de bords Pentaho (CDE/CDF)

Introduction

Quand vous proposez des tableaux de bords à vos utilisateurs métiers, tôt ou tard la question suivante arrive immanquablement : « Est-ce que je peux sauvegarder mon tableau de bord au format PDF ? »

Cet article – librement inspiré d’un autre article sur ce sujet sur le blog d’Ambient BI – se propose d’exposer la méthodologie de mise en œuvre pour des tableaux de bords conçus et publiés avec Pentaho CDE/CDF.

Bizarrement, comme cela est détaillé dans l’article Solution générique d’impression de pages web (blog.atolcd.com), il n’est pas si facile d’effectuer un export PDF d’une page web quelconque !

La méthode pour l’impression PDF d’un dashboard Pentaho CDE/CDF est la suivante: reconstruire avec Pentaho Report Designer une version adaptée de la structure du dashboard pour être en mesure d’en faire un export dans le format de sortie souhaité (PDF, Excel, Word…)

Pentaho CGG

Alors que les rapports conçus avec Pentaho Report Designer sont conçus de base pour des sorties en Html, Pdf, Excel ou Word (via des librairies de génération), les tableaux de bords développés avec Pentaho CDE sont uniquement générés en HTML, les graphiques étant délivrés en SVG via les composants CCC (Community Chart Components).

Ce dernier point pose toutefois problème, car il faut impérativement une conversion des SVG en fichier image pour pouvoir les incorporer dans un document.

Heureusement, le projet Ctools offre une botte secrète : CGG (Community Graphics Generator). CGG permet en effet de restituer des graphiques au format PNG (via un appel Javascript) à partir des définitions de graphes CCC .

Pour cela, il faut tout d’abord ouvrir le dashboard en mode édition puis appuyer sur la combinaison de touche (Shift+G) 🙂

Une pop-up s’affiche, il suffit de cocher les cases des graphiques pour lesquels on souhaite obtenir une restitution CGG, puis d’effectuer une sauvegarde :

Deux fichiers Javascript (dans mon exemple « piechart.js » et « barchart.js ») sont créés dans le répertoire de stockage, au même endroit que le fichier de définition du dashboard (extension .cdfde)

Ces fichiers permettront de restituer les graphiques au format PNG à partir d’une url :

Pour le PieChart :

http://localhost:8080/pentaho/content/cgg/draw?script=Demo+CDE/piechart.js&paramyear=2003

 



Pour le BarChart :

http://localhost:8080/pentaho/content/cgg/draw?script=Demo+CDE/barchart.js&paramannee=2004&paramzone=EMEA

Notez que les paramètres se transmettent directement dans l’url avec la syntaxe :

&paramNOMDUPARAM=VALEURDUPARAM

Création du rapport

1. Créer un nouveau rapport (blank report) depuis Pentaho Report Designer

2. Créer 2 paramètres pour le rapport, identiques à ceux utilisés par le tableau de bord, à savoir « annee_param » et « zone_param » :

3. Créer 2 autres paramètres pour la génération dynamique des images (à partir des urls CGG)

  • paramètre « piechart_image » :

  • paramètre « barchart_image » :

4. Dans la bande « Report Header », ajouter :

  • le titre du tableau de bord
  • un objet « message-field » pour afficher l’année sélectionnée
  • un objet « message-field » pour afficher la zone sélectionnée
  • un objet « image-field » pointant sur le paramètre « piechart_image »
  • un objet « image-field » pointant sur le paramètre « barchart_image »

Tester le rapport. Celui-ci doit permettre la génération des graphiques en fonction des paramètres année et zone sélectionnés.  Dès que le rapport est opérationnel, on peut masquer les paramètres en cochant la case « Hidden » dans la boîte de dialogue de définition du paramètre :

Lien « Export PDF » depuis le tableau de bord

  • Publier le rapport sur le serveur Pentaho, dans un sous-répertoire (/pdf) spécialement créé (à l’intérieur de celui du dashboard)
  • Editer la structure du dashboard avec CDE
  • Dans l’onglet Layout, créer un nouvel objet ligne (Row) pour l’affichage du bouton d’export (Name=dashboard_export) :

  • Dans l’onglet Components, créer un composant de type « Execute Prpt Component » et le paramétrer comme ci-dessous :

  • Sauvegarder et tester. Un bouton apparaît normalement en haut à droite pour permettre l’export en PDF !

 

Nota : Il est bien sûr possible de laisser l’utilisateur choisir son type d’export (PDF, Excel, Word). Pour cela on ne verrouillera pas le champ « Output Type » lors de la publication du rapport et on mettra la propriété « Show Parameters=True » dans le composant CDE « Execute Prpt ».

Téléchargement de l’exemple

Download:

A bientôt pour un prochain article sur Pentaho CDF/CDE:  le composant « Table » et les Addins

21 Comments

  1. Thank you very much for your post. I would like to write in French but at the moment it’s too hard for me 😉
    Recently we finished a dashboard project and the first question from the customer was how to export all of the dashboards to a single pdf document using parameters. Until I’ve read your post this issue was a headache for me and my coleagues.

    Merci beaucoup!
    Cordialement:
    Paul Hernández

  2. Parfait, merci pour l’astuce.
    est-ce qu’au lieu d’avoir un bouton export pdf, ça serait possible d’avoir un bouton email qui met le pdf en pièce jointe (ou a la limite en snapshot ?)
    Je vois pas trop comment faire ça a priori. Une piste ?

  3. Oui c’est possible
    Le plus simple c’est de créer une Xaction avec Pentaho Design Studio pour gérer tout le process : création du PDF avec Pentaho Reporting, génération du rapport et envoi par mail

    Comme dans Pentaho CDE on peut déclencher des Xactions: le tour est joué !

  4. Bonjour,

    J’ai suivi les différentes étapes afin d’intégrer le bouton d’export PDF. Cependant, je rencontre un problème auquel je ne trouve pas la solution… peut être pouvez vous m’aider.
    Lorsque je créé le bouton, il s’affiche bien sur mon tableau de bord par contre , à l’exécution, j’ai un message d’erreur (« Error parsing parameter information ») à l’ouverture du « popup » …

    J’ai essayé de regarder sur le net… je n’ai rien trouvé. Avez-vous une idée quel peut etre le souci ?

    Merci encore 😉

  5. de plus, j’ai une autre question… est-il possible d’exporter les table component?

  6. Good Morning,

    I am trying to follow same process but unfortunately I am not getting any output in the pdf While exporting the PDF and pdf itself. pls let me know how I can achieve… 🙁

  7. Le fait est que je n’avait pas créer tout simplement l’etat PDR 🙂
    Seulement, je me suis rendu compte que l’export de graphique était possible mais pas celui des tableaux.
    JE me trompe ? sinon comment procéder de manière différentes ?

  8. Bonjour
    En effet l’export PDF des tableaux ne fonctionne pas
    Bientôt j’indiquerai ici une autre solution pour l’export de Dashboards au format PDF 😉

    Soyez patients, et suivez le fil RSS

  9. Hi All,

    Thanks for the Great Post.

    Can you please guide/Help me in mailing the Dashboard designed to desired address.
    How to schedule it in Pentaho BU server CE 4.5

    Thanks in advance.
    Sri

  10. Hello,

    Is there a way to make a tutorial on how can PhantomJS can be integrated in cde/ctools and use it to export cde dashboards to pdf? It will be very helpful since it rasterize the page as better as no other tool. Thank you in advance.

    Best regards,
    Dragos.

  11. I will do my best. Write a blog entry is just a question of time (and unfortunatly i haven’t enough time…)

  12. Hola he seguido todos los pasos indicados pero cuando quiero exportar el gráfico a PDF muestra el siguiente mensaje: »Error parsing parameter information » aunque en el diseñador de reportes si me muestra las graficas.
    Me podrian ayudar con respecto a este error… Gracias!

  13. sorry i dont know. Check your logs and try to understand the problem
    (this method normally works in pentaho 4.5)
    Cheers

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*