IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

BIRT Discussion :

[2.2.2] Image et chart en HTML


Sujet :

BIRT

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 6
    Points
    6
    Par défaut [2.2.2] Image et chart en HTML
    Bonjour,

    J'aimerai savoir si lors de la generation de rapport en format HTML il est possible d'embarquer dans le HTML les images et les chart non pas sous forme de référence à un fichier sur le disque ou une url, mais directement sous forme binaire.

    En bref, transformer ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img align="left" src="file:/C:/DOCUME~1/jbe/LOCALS~1/Temp/file13.jpg">
    en ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <img src="data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub/
    /ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcpp
    V0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7" 
    width="16" height="14" alt="embedded folder icon">
    Cordiales salutations.

  2. #2
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Bonjour,

    Dans un état, il est possible de faire une image embarquée (embedded image), elle est alors directement écrire dans le fichier rptdesign.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Merci,

    Mais pour les chart? Est-il aussi possible de spécifier que les chart qui sont ensuite générer comme image sont aussi embarqué?

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Avril 2008
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 143
    Points : 1 353
    Points
    1 353
    Par défaut Oui
    certes , vous pouvez même spécifier le type d'image : GIF etc

    ou alors laisser en SVG pour garder l'interactivité

    par contre , default , BIRT génére et stocke cette image dans un répértoire. Je vais chercher si c'est un paramètre

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    J'ai trouvé une solution à ce problème, je la poste ici si ca peut intéresser d'autres personnes.
    Pour résoudre ce problème, j'ai surchargé la fonction handleImage de la classe HTMLCompleteImageHandler. L'illustration ci-dessous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    package report.tests.birt.extension;
     
    import org.apache.commons.codec.binary.Base64;
    import org.eclipse.birt.report.engine.api.HTMLCompleteImageHandler;
    import org.eclipse.birt.report.engine.api.IImage;
     
    public class HTMLEmbeddedImageHandler extends HTMLCompleteImageHandler {
     
      /**
       * Overrides the HTMLCompleteImageHandler to generate an encoded base64 representation of the image.
       */
      protected String handleImage(IImage image, Object context, String prefix, boolean needMap) {
        Base64 base64  = new Base64();
        byte[] encoded = base64.encode(image.getImageData());
        /** Remove the point in the image name */
        String extension = image.getExtension().substring(1, image.getExtension().length());
     
        StringBuffer sb = new StringBuffer("data:image/" + extension + ";base64,");
        String stringEncoded = new String(encoded);
        sb.append(stringEncoded);
        return sb.toString();
      }
    }
    Ensuite, il suffit de l'utiliser dans les options:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        ...
        HTMLRenderOption htmlOptions      = new HTMLRenderOption();
        htmlOptions.setOutputFileName("./output/HChart.html");
        htmlOptions.setOutputFormat("html");
        htmlOptions.setEmbeddable(true);
        htmlOptions.setImageHandler(new HTMLEmbeddedImageHandler());
        ...
    Je suis impressionné de la flexibilité donnée par Birt.

    Salutations.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Image]Convertir du code HTML en image
    Par lalouve dans le forum Bibliothèques et frameworks
    Réponses: 14
    Dernier message: 09/05/2012, 14h47
  2. [Traitement d'image] Transformer un fichier html en Gif ou jpg
    Par PrinceMaster77 dans le forum Webdesign & Ergonomie
    Réponses: 6
    Dernier message: 03/08/2006, 13h20
  3. Image dans un tableau HTML
    Par andlio dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 23/05/2006, 16h13
  4. Réponses: 1
    Dernier message: 11/05/2006, 19h06
  5. insérer une image sur une page html sans joindre son fichier
    Par fidji dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 03/02/2006, 10h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo