Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 9 sur 9
  1. #1

    Inscrit en
    septembre 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 20
    Points : -1
    Points
    -1

    Par défaut Probleme insertion Image fichier XSL

    Dans mon fichier xsl
    J'essaye d'inserer une image qui sera affichier dans un PDF générer

    J'ai essayé plusieurs valises , mais je recois toujours des erreurs



    Voici ma valise :
    <img>
    <xsl:attribute name="src">
    <xsl:value-of select="logo.gif"/>
    </xsl:attribute>
    </img>





    Les erreurs obtenus :

    2013-01-11 17:53:06 [ERROR] TC50ReportController 0 Fonction 'generatePdf' Ligne '1579' Erreur lors de la transformation du XSL-FO en PDF : [INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser
    [INFO] FOP 0.20.5
    [INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser
    [INFO] building formatting object tree
    [INFO] setting up fonts
    [ERROR] Unsupported element encountered: img (Namespace: default). Source context: file:/tmp/15015036150f097d1aafd6.fo (line: 2, col: 1223)
    [ERROR] Expected XSL-FO (root, page-sequence, etc.), SVG (svg, rect, etc.) or elements from another supported language.
    [INFO] [1]
    [ERROR] no handler defined for img foreign xml
    [INFO] Parsing of document complete, stopping renderer

  2. #2
    Modérateur

    Inscrit en
    septembre 2004
    Messages
    9 531
    Détails du profil
    Informations forums :
    Inscription : septembre 2004
    Messages : 9 531
    Points : 14 361
    Points
    14 361

    Par défaut

    Le mieux serait de prendre un tutoriel ou une référence des commandes XSL-FO, au lieu d'essayer de deviner quelles balises existent ou non.

    Essaie <fo:external-graphic>
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher du poisson, il videra le lac et au bout de deux ans son village ne mangera plus jamais.
    Partagez vos connaissances, mais aussi comment s'en servir.

  3. #3

    Inscrit en
    septembre 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 20
    Points : -1
    Points
    -1

    Par défaut

    Merci pour ta réponse , ca ma vraiment aidé

    Voici le bon code :
    <fo:external-graphic src="logo.gif" ></fo:external-graphic>

    Quand j'ai fait ca , j'ai recu ce message d'erreur :

    2013-01-12 15:53:25 [INFO] MainController 0 Demande du module: TC50Report controller: TC50ReportController action: default
    2013-01-12 15:53:25 [INFO] TC50ReportController 0 Fonction 'process' Ligne '64' Demande du contrôleurTC50ReportController Action = default
    2013-01-12 15:53:28 [INFO] MainController 0 Demande du module: TC50Report controller: TC50ReportController action: getstatistics
    2013-01-12 15:53:28 [INFO] TC50ReportController 0 Fonction 'process' Ligne '64' Demande du contrôleurTC50ReportController Action = getstatistics
    2013-01-12 15:53:30 [INFO] MainController 0 Demande du module: TC50Report controller: TC50ReportController action: generatepdf
    2013-01-12 15:53:30 [INFO] TC50ReportController 0 Fonction 'process' Ligne '64' Demande du contrôleurTC50ReportController Action = generatepdf
    2013-01-12 15:53:31 [ERROR] TC50ReportController 0 Fonction 'generatePdf' Ligne '1579' Erreur lors de la transformation du XSL-FO en PDF : [INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser
    [INFO] FOP 0.20.5
    [INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser
    [INFO] building formatting object tree
    [INFO] setting up fonts
    [INFO] [1]
    [ERROR] Error while creating area : Error while recovering Image Informations (file:/tmp/logo.gif) : /tmp/logo.gif (No such file or directory)
    [INFO] [2]
    [ERROR] Error while creating area : Error while recovering Image Informations (file:/tmp/logo.gif) : /tmp/logo.gif (No such file or directory)
    [INFO] Parsing of document complete, stopping renderer


    Pour bricoler et s'assurer de mon code , j'ai placé l'image dans le dossier "tmp" et mon pdf c'est générer avec l'image

    Je demande si vous avez une idée pour résoudre ce probleme

  4. #4
    Modérateur

    Inscrit en
    septembre 2004
    Messages
    9 531
    Détails du profil
    Informations forums :
    Inscription : septembre 2004
    Messages : 9 531
    Points : 14 361
    Points
    14 361

    Par défaut

    FOP ne sait pas où aller chercher le fichier logo.gif
    Normalement il doit aller le chercher dans le contexte courant, qui devrait être le même contexte que celui où il a trouvé le document XSL-FO ou le document XSLT qui génère le XSL-FO.
    Il semble penser que le contexte courant est /tmp ce qui est plutôt étrange.

    À un moment ou à un autre tu dois sûrement avoir l'occasion d'indiquer le base URL à utiliser. Si ce n'est pas le cas, tu peux toujours mettre le chemin complet file:///chemin/vers/ton/image/logo.gif dans src
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher du poisson, il videra le lac et au bout de deux ans son village ne mangera plus jamais.
    Partagez vos connaissances, mais aussi comment s'en servir.

  5. #5
    Membre habitué
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    avril 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : avril 2007
    Messages : 95
    Points : 110
    Points
    110

    Par défaut

    théoriquement, si ton fichier XSL-FO est dans un répertoire "action" qui contient également au même niveau un dossier "images" dans lequel tu met... l'image (!), ton <external-fo> doit ressembler à cela :

    Code :
    <fo:external-graphic src="url('images/image.png')" scaling="uniform" content-width="2cm"/>
    Personnellement je n'utilise que des chemins relatifs afin de transférer de la dev à la prod tel quel. L'url complète n'est jamais précisée dans aucun fichier.
    "Chuck Norris a déjà compté jusqu'à l'infini. Deux fois."

  6. #6

    Inscrit en
    septembre 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 20
    Points : -1
    Points
    -1

    Par défaut

    Pour le chemin de l'image , il est toujours correct avec les deux syntaxes

    Je recois toujours le meme message d'erreur :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    2013-01-14 13:53:19 [ERROR] TC50ReportController 0 Fonction 'generatePdf' Ligne '1579' Erreur lors de la transformation du XSL-FO en PDF : [INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser
    [INFO] FOP 0.20.5
    [INFO] Using org.apache.xerces.parsers.SAXParser as SAX2 Parser
    [INFO] building formatting object tree
    [INFO] setting up fonts
    [INFO] [1]
    [ERROR] Error while creating area : Error while recovering Image Informations (file:/tmp/logo.gif) : /tmp/logo.gif (No such file or directory)
    [INFO] Parsing of document complete, stopping renderer
    C'est comme le systeme dois copié l'image dans le dossier tmp pour affichage

  7. #7
    Modérateur

    Inscrit en
    septembre 2004
    Messages
    9 531
    Détails du profil
    Informations forums :
    Inscription : septembre 2004
    Messages : 9 531
    Points : 14 361
    Points
    14 361

    Par défaut

    C'est ton système à toi, c'est pas FOP, qui met les choses dans /tmp
    Nous ne pouvons pas deviner pourquoi il le fait, c'est ton système, c'est toi qui a fait en sorte que ça fasse ça. Si tu ne nous expliques pas le pourquoi du comment on ne peut rien faire.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher du poisson, il videra le lac et au bout de deux ans son village ne mangera plus jamais.
    Partagez vos connaissances, mais aussi comment s'en servir.

  8. #8

    Inscrit en
    septembre 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 20
    Points : -1
    Points
    -1

    Par défaut

    Résolu

    Merci bien thelvin et caballo
    Voici le code
    <fo:external-graphic src="Modules/TC50Report/Images/ORCA/logo.gif" scaling="uniform" content-width="2cm"/>

    L'astuce c'est que ce chemin est obligatoire, car il ya d'autre fonction qui copie l'image a partir de ce chemin la , vers tmp et construit le PDF
    Merci encore

  9. #9
    Membre habitué
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    avril 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : avril 2007
    Messages : 95
    Points : 110
    Points
    110

    Par défaut

    L'astuce c'est que soit ce fichier image existe à l'emplacement spécifié (ici relatif) dans ton code XSL-FO, soit il n'existe pas. Que tu le copie ou autre opération n'y change rien...

    P.S. tu peux passer le sujet en résolu !
    "Chuck Norris a déjà compté jusqu'à l'infini. Deux fois."

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •