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

Spring Java Discussion :

Afficher un PDF dans un Pop-Up avec un DispatcherServlet


Sujet :

Spring Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 27
    Points : 27
    Points
    27
    Par défaut Afficher un PDF dans un Pop-Up avec un DispatcherServlet
    J'ai besoin d'ouvrir un fichier PDF dans un Pop-Up après l'avoir générer à partir d'une méthode invokée par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @RequestMapping(value = "/printQuotation/{quoteId}/{docType}", method = RequestMethod.GET)
    en utilisant un Ceci le code que j'utilise pour générer le fichier PDF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private MailMerge mailMerger = new MailMerge();
    Map<String, String> vars = new HashMap<>();
    vars.put("companyName", "TeamWill Consulting");
    vars.put("siret", "123456789");
    vars.put("financedAmount", "13500");
    vars.put("payment", "400");
    vars.put("duration", "36");
    File pdf = mailMerger.toPdf("Devis.docx", vars);

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Est ce que le code suivant n'est pas suffisant pour afficher un pdf que ce soit Spring ou non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    @RequestMapping(value = "/xxxxxxxxxxx", method = RequestMethod.GET)
    public void getPDF(final HttpServletRequest httpRequest, final HttpServletResponse httpResponse) throws Exception {
    final byte[] fluxPDF = //pdf.getBytes() ;
     
    			// Display the document
    			httpResponse.setContentType("application/pdf");
    			httpResponse.setContentLength(fluxPDF.length);
     
    			final OutputStream out = httpResponse.getOutputStream();
    			out.write(fluxPDF);
    			out.flush();
    			out.close();
    }

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 27
    Points : 27
    Points
    27
    Par défaut
    ça marche pas ! ce n'est pas du Spring ça

  4. #4
    Invité
    Invité(e)
    Par défaut
    bah pourtant le projet que j'ai sous les yeux s'appuit bien sur spring 3.2.8.
    Et cela semble fonctionner...

    Ca ne compile pas ou tu n'as pas accès aux objets HttpServletResponse / HttpServletRequest ?
    Normalement si tu modifis la signature de ta methode, Spring devrait alimenter ces objects.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2015
    Messages : 27
    Points : 27
    Points
    27
    Par défaut
    En fait j'utilise une méthode qui renvoi un ModelAndView :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        @RequestMapping(value = "/printQuotation/{quoteId}/{docType}", method = RequestMethod.GET)
        @Override
        protected ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception { ... }
    Le problème c'est que mon objet HttpServletResponse ne possède pas les méthodes setContentType et setContentLength.

  6. #6
    Membre confirmé Avatar de ruscov
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2007
    Messages : 347
    Points : 500
    Points
    500
    Par défaut
    Tu dois streamer le fichier, tu n'as pas le choix :

    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
     
    @RequestMapping(value = "/printQuotation/{quoteId}/{docType}", method = RequestMethod.GET)
    public ResponseEntity<byte[]> getPDF(@RequestBody String json) {
     
        // récupère le contenu de ton PDF en utilisant la méthode de ton choix.
        byte[] contents = (...);
     
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.parseMediaType("application/pdf"));
        String filename = "output.pdf";
        headers.setContentDispositionFormData(filename, filename);
        headers.setCacheControl("must-revalidate, post-check=0, pre-check=0");
        ResponseEntity<byte[]> response = new ResponseEntity<byte[]>(contents, headers, HttpStatus.OK);
        return response;
    }
    Bonne chance!
    Mes logiciels n’ont jamais de bug. Ils développent juste certaines fonctions aléatoires.

Discussions similaires

  1. Afficher PDF dans une nouvelle page avec Struts
    Par Snyper dans le forum Struts 1
    Réponses: 10
    Dernier message: 14/12/2011, 15h53
  2. Réponses: 3
    Dernier message: 24/01/2007, 20h37
  3. Afficher une image dans un pop-up.
    Par Pragmateek dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 03/01/2007, 22h53
  4. Afficher un pdf dans un cadre d'objet
    Par ctl1970 dans le forum Access
    Réponses: 4
    Dernier message: 16/10/2006, 19h14
  5. [PDF] Afficher un pdf dans une page web
    Par hutchuck dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 16/01/2006, 11h21

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