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

Messages postés
45
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
9 février 2011
- - Dernière réponse : bonapart002
Messages postés
45
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
9 février 2011
- 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 
A voir également:

Votre réponse

5 réponses

Meilleure réponse
Messages postés
45
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
9 février 2011
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.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 138 internautes nous ont dit merci ce mois-ci

Commenter la réponse de bonapart002
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
112
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
Messages postés
45
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
9 février 2011
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
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
112
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
Messages postés
45
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
9 février 2011
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.