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

Jasper Discussion :

Insérer une image "dynamique" google Static Maps


Sujet :

Jasper

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Points : 9
    Points
    9
    Par défaut Insérer une image "dynamique" google Static Maps
    Bonjour,

    J'aimerai intégrer directement dans mon rapport pdf une image via une url google static maps.
    Quelqu'un peut m'éclairer sur ce point ? Je débute sur jasper...

    voici mes premiers tests :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <parameter name="url" class="java.lang.String"/>
    ...
    <image>
    	<reportElement x="272" y="109" width="400" height="400"/>
    	<imageExpression class="java.lang.String"><![CDATA[$P{url}]]></imageExpression>
    </image>
    Le paramètre "url" étant une une url du type "http://maps.google.com/maps/api/staticmap?center=34.58129871987184,-119.54247946484375"

    voici l'exception

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    net.sf.jasperreports.engine.JRException: Error loading byte data : http://maps.google.com/maps/api/staticmap?center=34.58129871987184,-119.54247946484375&zoom=9&markers=color:red|34.42059,-119.644103&maptype=terrain&size=500x500&sensor=true&key=private
    	at net.sf.jasperreports.engine.util.JRLoader.loadBytes(JRLoader.java:356)
    	at net.sf.jasperreports.engine.util.JRLoader.loadBytesFromLocation(JRLoader.java:473)
    	at net.sf.jasperreports.engine.JRImageRenderer.getInstance(JRImageRenderer.java:180)
    	at net.sf.jasperreports.engine.fill.JRFillImage.evaluateImage(JRFillImage.java:948)
    	at net.sf.jasperreports.engine.fill.JRFillImage.evaluate(JRFillImage.java:895)
    	at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:260)
    	at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:486)
    	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1427)
    	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:729)
    	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:256)
    	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:114)
    	at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:911)
    	at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:833)
    	at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
    	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:628)
    	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:544)
    	at net.sf.jasperreports.engine.JasperRunManager.runReportToPdf(JasperRunManager.java:385)
    	at com.ddb.jlc.front.servlet.JasperReportsPDFServlet.doGet(JasperReportsPDFServlet.java:55)
    	at com.ddb.jlc.front.servlet.JasperReportsPDFServlet.doPost(JasperReportsPDFServlet.java:78)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
    	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
    	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
    	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
    	at org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:195)
    	at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:159)
    	at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141)
    	at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)
    	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:406)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    	at com.ddb.jlc.front.utils.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:27)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    	at com.ddb.jlc.front.utils.JSessionStripFilter.doFilter(JSessionStripFilter.java:61)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    	at com.jaeger.lecoultre.framework.userrecognition.UserRecognitionServletFilter.doFilter(UserRecognitionServletFilter.java:51)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
    	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
    	at java.lang.Thread.run(Thread.java:595)
    Caused by: java.net.UnknownHostException: maps.google.com
    	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
    	at java.net.Socket.connect(Socket.java:524)
    	at java.net.Socket.connect(Socket.java:474)
    	at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
    	at sun.net.www.http.HttpClient.openServer(HttpClient.java:388)
    	at sun.net.www.http.HttpClient.openServer(HttpClient.java:523)
    	at sun.net.www.http.HttpClient.<init>(HttpClient.java:231)
    	at sun.net.www.http.HttpClient.New(HttpClient.java:304)
    	at sun.net.www.http.HttpClient.New(HttpClient.java:321)
    	at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:839)
    	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:791)
    	at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:716)
    	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:960)
    	at java.net.URL.openStream(URL.java:1007)
    	at net.sf.jasperreports.engine.util.JRLoader.loadBytes(JRLoader.java:342)
    	... 54 more
    Merci d'avance !

  2. #2
    Membre éprouvé

    Inscrit en
    Janvier 2009
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 467
    Points : 1 253
    Points
    1 253
    Billets dans le blog
    2
    Par défaut
    Je ne savais pas qu'on avait le droit ne mettre une URL externe dans l'adresse de l'image...
    => Premier point à confirmer

    l'url que tu as indiqué :
    http://maps.google.com/maps/api/stat...54247946484375
    renvoie une erreur 400...

    => Un moyen d'éviter l'erreur du rapport entier, est de choisir "blank on error" dans les propriétés (c'est pas le nom exact), ce qui au moins permet d'avoir le rapport sans l'image qui ne marche pas

  3. #3
    Membre éprouvé

    Inscrit en
    Janvier 2009
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 467
    Points : 1 253
    Points
    1 253
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par jmini Voir le message
    "blank on error" dans les propriétés (c'est pas le nom exact)
    Je voulais dire la propriété :
    On error type de Image properties et la mettre à Blank

    En JRXML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <image onErrorType="Blank">

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Bonjour et merci pour ta réponse,

    effectivement l'url que j'ai donné n'est pas complète puisqu'il faut une key que j'ai effacé puisqu'elle est personnelle...

    autrement merci pour l'info concernant la propriété, qui est à mon avis très utile!

    maintenant concernant mon problème de base, j'ai trouvé une autre solution.
    peut être n'est-elle pas la meilleure mais répond aussi à mes besoins.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <parameter name="staticMapImage" class="java.lang.Object"/>
    ...
    <image onErrorType="Blank">
    	<reportElement x="358" y="84" width="400" height="400"/>
    	<imageExpression class="java.awt.Image"><![CDATA[net.sf.jasperreports.engine.util.JRImageLoader.loadImage((byte[])$P{staticMapImage})]]></imageExpression>
    </image>
    sachant que ma version précédente fonctionne aussi... j'avais des problème de proxy...

    j'y ai ajouté la propriété onErrorType="Blank" au cas ou...
    mais cette méthode permet de charger un paramètre reçu en byte (mon image) et de la rendre dans mon pdf

    Comme dit plus haut si vous avez une autre méthode je veux bien comparer...

    Merci!

Discussions similaires

  1. [ezPDF] Fonction addImage : insérer une image créée dynamiquement
    Par Huntress dans le forum Bibliothèques et frameworks
    Réponses: 37
    Dernier message: 29/11/2005, 11h20
  2. [FLASH MX2004] Insérer une image dynamiquement
    Par Brian3D dans le forum Flash
    Réponses: 5
    Dernier message: 04/04/2005, 10h02
  3. [CR7] Insérer une image dynamiquement
    Par yoloosis dans le forum SAP Crystal Reports
    Réponses: 12
    Dernier message: 28/07/2003, 09h54

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