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

Documents Java Discussion :

[FOP] inclusion d'images


Sujet :

Documents Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Points : 445
    Points
    445
    Par défaut [FOP] inclusion d'images
    Bonjour,

    Je voudrais inclure des images dans un document FOP sous forme d'in-line.
    J'utilise actuellement la version 0.20.5 (et je ne peux pas passer à la version 0.92)

    A l'heure actuelle les images sont inclues dans le document de 2 façons:

    * fo:external-graphic : avec l'url de l'images à afficher (images statique ou servlet)
    * fo:instream-foreign-object : inclusion d'images au format SVG directement dans le XML-FO


    Le problème de la première solution est que je n'ai pas de moyen d'appeler une classe Java générant l'image (générée avec JFreeChart). Cela nécessite de passer par HTTP, ce qui n'est pas terrible au niveau performances et architecture.
    Le problème de la seconde solution est que SVG dans FOP ne permet pas d'avoir le même rendu (la transparence n'est pas supportée).

    Ma question est : est-il possible d'inclure dans le fichier XML-FO l'image sous forme in-line, c'est à dire avec le code binaire (encodé en string d'héxadécimaux, ou autre) directement dans le flux, afin que lors du rendering fop n'ait pas à aller chercher une ressource externe ?

    Autre contrainte : je ne peux (veux) pas utiliser de fichiers temporaires.


    Merci d'avance

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Oui, c'est possible. Je me souvient l'avoir fait en definissant un nouveau format uri a l'aide des classes URLConnection et URLStreamHandler. C'etait expliqué sur le forum de Fop....

    Edit:

    Ah, j'ai retrouvé le message du forum:
    http://www.mail-archive.com/fop-user.../msg12480.html

    Par contre, j'ai pas encore retrouvé mon code, mais je cherche...
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Points : 445
    Points
    445
    Par défaut
    Ca m'a l'air de coller tout à fait

    Mais si tu retrouves ton exemple d'implémentation et d'appel (surtout) je suis preneur.

    Merci encore

    Jacques Desmazières

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Arf. Je vais avoir du mal a extraire juste le code interessant, car il fait partie d'une API (faite maison) pour construire les documents FOP a la maniere de SWING.

    Enfin voila:
    les 3 classes DataURLConnection, DataURLStreamHandler et
    ExtendableURLStreamHandlerFactory sont la plomberie necessaire pour gerer le format d'image inline (pour nous, du base64)

    A faire (une fois) avant d'utiliser fop:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    try {
        URL.setURLStreamHandlerFactory(
           ExtendableURLStreamHandlerFactory.getDefaultFactory() );
    } catch(Error e) {		
        // factory already defined
    }
    Dans le code du document FOP, on utilise un fo:external-graphic avec comme url:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data:image/jpeg;base64,XXXXX
    ou XXXXX represente le contenu de l'image encodée en base64.

    Apres, on fait un appel classique au render de la Fop Engine.

    NB: pour gerer autre chose que du Base64, il faut modifier la fin de la methode connect() de la classe DataURLConnection
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Points : 445
    Points
    445
    Par défaut
    Super merci beaucoup, je vais tester cela dés que possible

    Jacques Desmazières

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

Discussions similaires

  1. Problème avec l'inclusion d'images
    Par Baptiste Wicht dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 10
    Dernier message: 13/10/2010, 14h17
  2. Réponses: 2
    Dernier message: 05/03/2009, 15h42
  3. inclusion d'image dans un .rc
    Par Gébix dans le forum Windows
    Réponses: 4
    Dernier message: 06/03/2007, 16h00
  4. Inclusion d'image Latex
    Par audreybio62 dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 4
    Dernier message: 04/01/2007, 13h49
  5. [Librairies] Inclusion d'images dans un mail
    Par peck dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 28/11/2005, 09h46

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