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

Servlets/JSP Java Discussion :

Génération d'un fichier PDF et telechargement automatique


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 30
    Points : 11
    Points
    11
    Par défaut Génération d'un fichier PDF et telechargement automatique
    Bonjour,

    J'aimerais avoir votre avis sur différentes solutions.
    Je développe une appli Web (JSP, servlet) et je génère des pdf à la volée avec l'excellent JasperReport.
    Quelle est la meilleur façon d'afficher le pdf généré ?

    Je pensais afficher une popup d'attente, le temps de la génération du fichier, puis de démarrer automatiquement le téléchargement le PDF, une fois que celui-ci a été généré. Mais je ne sais pas trop comment faire.
    Un javascript qui demande régulièrement si la génération du pdf est terminée, et lorsque c'est terminé le télécharge ? Cela ne me paraît pas idéal.
    Il y a sûrement d'autres solutions plus élégantes, mais là, je coince...

    Pour l'instant, je fais un lien vers une servlet qui génère le PDF (environ 8 secondes d'attente pour un document de 80 pages) et qui redirige le flux du PDF dans la réponse HTTP. Cette méthode permet de s'affranchir de la génération du fichier côté serveur.

    Cela fonctionne bien, mais il n'y a pas de message pour faire patienter l'utilisateur.

    Je pense que ce genre de chose a déjà été fait des centaines de fois et qu'il doit y avoir une solution évidente, mais là je bloque.

    Merci d'avance pour vos conseils ;-)

  2. #2
    Membre régulier
    Inscrit en
    Août 2004
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 171
    Points : 97
    Points
    97
    Par défaut
    Je pense qu'une solution valable lorsque tu clique sur le bouton pour générer le pdf est de déclenché un javascript qui ouvre une popup avec un message d'attente (avec gif animé et compagnie) et qui déclenche une requete ajax. Ainsi la requete asynchrone ne bloquera pas ton navigateur.

    Qu'est ce que t'en pense ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 30
    Points : 11
    Points
    11
    Par défaut
    Oui, j'y avais pensé, mais je ne vois pas trop d'autre solution que de demander periodiquement au serveur si le PDF est prêt, genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while (PdfPasPret)
    {
      sleep(1);
      PdfPasPret = ajaxEstPdfPret();
    }
    Mais c'est pas un peu lourd ? il n'y a pas plus élégant ?

  4. #4
    Membre régulier
    Inscrit en
    Août 2004
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 171
    Points : 97
    Points
    97
    Par défaut
    Justement en utilisant ajax tu fait ta requete au serveur et la réponse te sera retourné lorsque le document sera pret, sans avoir a devoir faire de multiple interrogration de la base

  5. #5
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    Salut,

    lorsque tu affiches le pdf à la volée tu le fais sur la page en cours ou dans une nouvelle fenetre de ton navigateur ?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 30
    Points : 11
    Points
    11
    Par défaut
    Dans une nouvelle fenêtre, pourquoi ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 30
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par metalpetsFR
    Justement en utilisant ajax tu fait ta requete au serveur et la réponse te sera retourné lorsque le document sera pret, sans avoir a devoir faire de multiple interrogration de la base
    J'avou que je n'ai jamais utilisé ajax. Je pensais m'y mettre un des ces quatres, mais je n'ai jamais eu le temps. Quelle bibliothèque me conseille-tu ?

    Dojo a l'air pas mal, mais je n'ai pas besoin de toutes ces fonctionnalités, et cela me parait un peu complexe..

  8. #8
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    ce que je cherche à savoir c'est si tu affiches ton pdf dans la jsp qui appel la servlet qui génré le pdf ou cela t'ouvre acrobat reader en parallele ?

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 30
    Points : 11
    Points
    11
    Par défaut
    En fait, ca ouvre Acrobat dans la nouvelle fenêtre du navigateur.
    Concretement, j'appel la servlet qui renvois le fichier xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    /** On génère le document */
          byte[] bytes = editionJasper.getContenuEditionJasper(sessionServeur);
          /**------------------------------------------------------------------------
           *  Envois du contenu dans le navigateur client
           * ------------------------------------------------------------------------*/
          sessionServeur.getHttpServletResponse().setContentType("application/pdf");
          sessionServeur.getHttpServletResponse().setContentLength(bytes.length);
          ServletOutputStream servletOutputStream = sessionServeur.getHttpServletResponse().getOutputStream();
          servletOutputStream.write(bytes, 0, bytes.length);
          servletOutputStream.flush();
          servletOutputStream.close();

  10. #10
    Membre éprouvé Avatar de shaun_the_sheep
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2004
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 619
    Points : 996
    Points
    996
    Par défaut
    Bonjour,

    pour faire simple, si ton pdf s'ouvre bien comme je le pensais dans une seconde fênetre un bête message sur la jsp principale du genre "un pdf va s'ouvfrir ds quelques seconde"

    ......

Discussions similaires

  1. Génération d'un fichier pdf
    Par DeD b dans le forum Jasper
    Réponses: 2
    Dernier message: 02/09/2012, 11h48
  2. Génération d'un fichier pdf
    Par Jiyuu dans le forum Téléchargez
    Réponses: 0
    Dernier message: 12/01/2011, 22h02
  3. génération d'un fichier PDF
    Par ottoayoub dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 10/09/2010, 05h18
  4. [FPDF] conflit entre transfert de paramètres et génération d'un fichier pdf
    Par itmak dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 29/06/2009, 14h24
  5. génération d'un fichier pdf
    Par lionel84 dans le forum Développement Web en Java
    Réponses: 13
    Dernier message: 24/01/2008, 13h57

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