JasperViewer sur la machine serveur et non pas sur la machine client [Résolu]

bonapart002 45 Messages postés mercredi 17 décembre 2008Date d'inscription 9 février 2011 Dernière intervention - 16 sept. 2010 à 12:50 - Dernière réponse : bonapart002 45 Messages postés mercredi 17 décembre 2008Date d'inscription 9 février 2011 Dernière intervention
- 23 sept. 2010 à 09:47
Bonjour à tous, j'espère que quelqu'un pourrait m'aider avec cet bug ...
pourquoi si je veux générer un état sur un machine client le visionneur de JasperViewer apparait sur la machine du serveur et non pas sur la machine du client ?
j'utilise le code suivant:
 String webRoot = servletContext.getRealPath("/COMPTA");
 fileXml = new File(webRoot + "\\reports\\balance_generale.jrxml");
 JasperDesign jasperDesign = JRXmlLoader.load(fileXml);
 JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
 JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, model, connection);
 JasperViewer.viewReport(jasperPrint, false);
 JasperExportManager.exportReportToPdfFile(jasperPrint, par.getType_rapport() + ".pdf");


merci d'avance.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
bonapart002 45 Messages postés mercredi 17 décembre 2008Date d'inscription 9 février 2011 Dernière intervention - 23 sept. 2010 à 09:47
3
Merci
salut
la ligne suivante
response.addHeader("Content-disposition", "attachment;filename=balance_generale.pdf");

et écrite pour afficher la boite de dialogue si je la supprimé ca marche comme je veux
il reste un petit problème c'est que le nom de rapport prend par défaut le titre de la page jsp.

Merci bonapart002 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 124 internautes ce mois-ci

Commenter la réponse de bonapart002
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 16 sept. 2010 à 14:06
0
Merci
Salut,

C'est tout à fait normal dans un contexte J2EE : le code est exécuté au niveau serveur, il génère donc le pdf au niveau du serveur, pour le rendre accessible au niveau du client, il te suffit de retourner le fichier pdf plutôt que de faire une redirection vers une page jsp par exemple.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Commenter la réponse de cs_DARKSIDIOUS
bonapart002 45 Messages postés mercredi 17 décembre 2008Date d'inscription 9 février 2011 Dernière intervention - 16 sept. 2010 à 14:25
0
Merci
salut merci pour votre réponse
si je comprend bien "retourner le fichier pdf " :
ce code me permet de générer le rapport et d'afficher une boite de dialogue(de Firefox) pour enregistre ou ouvrir le rapport généré .mais je veut quant je cliquer si le bouton Generer le rapport s'ouvre directement sans passer par la boite de dialogue .
 String webRoot = servletContext.getRealPath("/COMPTA");
 fileXml = new File(webRoot + "\\reports\\balance_generale.jrxml");
 JasperDesign jasperDesign = JRXmlLoader.load(fileXml);
 JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);   
 byte[] bytes = JasperRunManager.runReportToPdf(jasperReport, model, connection);
 HttpServletResponse response = (HttpServletResponse)    
 context.getExternalContext().getResponse();
 response.setContentType("application/pdf");
 response.setHeader("Content-disposition", "inline");
 //Pour afficher une boîte de dialogue pour enregistrer le fichier sous
 response.addHeader("Content-disposition", "attachment;filename=balance_generale.pdf");
 response.setContentLength(bytes.length);
 response.getOutputStream().write(bytes);
 response.setContentType("application/pdf");
 context.responseComplete();

y'a t il un moyen de le faire?
et merci .
Commenter la réponse de bonapart002
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 16 sept. 2010 à 14:45
0
Merci
Salut,

Pas en pur html, il te faut passer par un plugin au niveau du navigateur, par exemple :
http://joliclic.free.fr/html/object-tag/object-application.html

Mais ca ne marche que si un plugin pdf est installé pour le navigateur.

Sinon y'a cà :
http://www.swftools.org/

Mais je suis pas sûr que ca s'applique à ton cas.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Commenter la réponse de cs_DARKSIDIOUS
bonapart002 45 Messages postés mercredi 17 décembre 2008Date d'inscription 9 février 2011 Dernière intervention - 16 sept. 2010 à 14:53
0
Merci
Salut,
merci pour votre réponse je doit le tester tout d'abord.
mais je croit que sera poser quelques problème pour un client qui n'a pas le plugin ,ou qui utilise autre navigateur.
Commenter la réponse de bonapart002

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.