Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Jasper
Jasper Forum d'entraide sur Jasper Reports. Avant de poster --> FAQ Jasper, Tutoriels Jasper
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/07/2007, 16h31   #1
Invité de passage
 
Inscription : mars 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 6
Points : 0
Points : 0
Par défaut Jasper Et Caracteres Arabes

Bonjour tout le monde ,

je developpe une application web JSF/EJB dans laquelle je dois generer des rapports en arabe.

J'utilise IReport 2.0 pour créer mes rapports( fichiers JRXML et .Jasper).

Les problèmes que j'ai rencontrés sont les suivants :

1. Quand j'exporte le raport via Ireport en PDF , je ne vois qu'une page vierge ou des caractères comme ?????????

2. Quand j'exporte le rapport via Ireport en format DOC(Microsoft word) , les textes sont inversés( de gauche à droite ) alors que l'arabe s'affiche de droite à gauche.

J'ai les memes resultats quand j'export le rapport via mon application web.

Par contre , le JRWiever de Ireport affiche correctement les caractères, mais ceci ne resoud pas le problème car je n'arrive pas à afficher le JRWiever chez le client( il s'affiche sur le serveur web).

Je suis vraiment dans le petrain, je pose des questions sur le site de jasperforge et personne ne repond.

Toutes les aides sont les bienvenues.

Merci à tous .
jsfdebutant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 23h44   #2
Membre actif
 
Avatar de tnodev
 
Inscription : mai 2005
Messages : 160
Détails du profil
Informations personnelles :
Âge : 40
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2005
Messages : 160
Points : 155
Points : 155
salut,

Concernant le pdf, problème de police, non ?
Il faut sans doute passer la police à jasper afin de l'inclure dans le pdf.
tnodev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 13h15   #3
Invité de passage
 
Inscription : mars 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 6
Points : 0
Points : 0
salut,
Merci de votre reponse .

Mais j'ai essayé le code suivant et le resultat ne change pas :

Code :
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
 
public void reportToPDF(String report, String filename, Map parameters) {
JasperPrint jasperPrint = null ;
byte[] pdf =null;
byte[] html =null;
byte[] doc =null;
 
FacesContext faces = javax.faces.context.FacesContext.getCurrentInstance();
HttpServletResponse response =(HttpServletResponse)faces.getExternalContext().getResponse();
 
 
try {
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(report);
net.sf.jasperreports.engine.JREmptyDataSource FG= new net.sf.jasperreports.engine.JREmptyDataSource();
 
jasperReport.setProperty("isPdfEmbedded","true");
jasperReport.setProperty("pdfEncoding","CP1256");
jasperReport.setProperty("pdfFontName","Helvetica"); 
 
pdf = net.sf.jasperreports.engine.JasperRunManager.runReportToPdf(jasperReport,parameters,FG);
 
response.setContentType("application/pdf");
response.setContentLength(pdf.length);
response.setHeader("Content-disposition","attachment; filename=\""+filename+".pdf\"");
response.setCharacterEncoding("UTF-8");
 
ServletOutputStream out;
try{
out = response.getOutputStream();
out.write(pdf);
}catch (IOException qw){
 
}
 
} catch (JRException ex3) {
 
 
}
 
faces.responseComplete();
}
Merci de m'envoyer le code dont vous avez parler.
jsfdebutant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 10h34   #4
Membre actif
 
Avatar de tnodev
 
Inscription : mai 2005
Messages : 160
Détails du profil
Informations personnelles :
Âge : 40
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mai 2005
Messages : 160
Points : 155
Points : 155
Salut

voici ma fonction qui inclut la police dans l'exporterMap dans mon report
Code :
1
2
3
4
5
6
7
8
9
10
11
12
    public Map<Object, Object> getExporterParam() {
        final Map<Object, Object> map = new HashMap<Object, Object>();
        final Map<Object, Object> fontMap = new HashMap<Object, Object>();
 
        FontKey key = new FontKey("alias_police", false, false);
        PdfFont font = new PdfFont("/xxx/yyy/TOTO.TTF", "Cp1252", false);
        fontMap.put(key, font);
 
        map.put(JRPdfExporterParameter.FONT_MAP, fontMap);
 
        return map;
    }
Au moment de l'export

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    /**
     * Mise dans le flux du report compilé et généré par JasperReport
     * @param outputStream le flux
     * @throws JRException
     */
    public void getContentToStream(final OutputStream outputStream)
        throws JRException {
        if (_jasperReport == null) {
            setJasperReport(compileJrXmlToJasper());
        }
 
        JasperPrint jasperPrint = JasperFillManager.fillReport(getJasperReport(), getJasperContext(), getJrDataSource());
        JRExporter exporter = getJrExporter();
        exporter.setParameters(getExportParam());
        exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
        exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outputStream);
        exporter.exportReport();
    }
Maintenant, tu peux dans ton jrxml, utilisez l'alias (alias_police) ou le nom complet de ta police (/xxx/yyy/TOTO.TTF) au niveau de l'attribut pdf font name
tnodev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 17h48   #5
Invité de passage
 
Inscription : mars 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 6
Points : 0
Points : 0
Salut tnodev,

J'etais en vacances , raison pour laquelle j'ai tardé à repondre .

J'ai testé ton code, mais ça ne me donne pas de rapport.

Je ne vois pas dans ton code , où tu genere le rapport

Que fais tu du "outputStream" après ?

en supposant que :

getJasperReport() retourne un objet jasperReport
getJasperContext() retourne un objet Map<Object, Object>
getJrDataSource() retourne un objet JREmptyDataSource

j'ai executé le code mais aucun rapport n'a été generé.


*******************************************************

Voici la methode que tu m'avais donné et que j'ai utilisé pour definir la police:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
public Map<Object, Object> getExporterParam() {
final Map<Object, Object> map = new HashMap<Object, Object>();
final Map<Object, Object> fontMap = new HashMap<Object, Object>();
 
FontKey key = new FontKey("Helvetica", true,true);
PdfFont font = new PdfFont("Helvetica", "CP1256",true);
//PdfFont font = new PdfFont("C:\\Sun\\AppServer\\domains\\domain1\\applications\\j2ee-modules\\SIBECWEB\\WEB-INF\\classes\\Configurations\\polices\\Winks.ttf", "Identity-H",false);
fontMap.put(key, font);
 
map.put(JRPdfExporterParameter.FONT_MAP, fontMap);
 
return map;
}
En gros le problème n'est toujours pas regler .

Merci de ton aide .
jsfdebutant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2010, 12h36   #6
Candidat au titre de Membre du Club
 
Inscription : avril 2010
Messages : 26
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 26
Points : 12
Points : 12
bonjour,
je travaille sur une application (jsf et japserreport) qui affiche des messages, ces messages peuvent être en arabe ou en français, je ne sais pas comment il le fait mais jasper affiche le texte de message à droite s'il s'agit de la langue arabe et à gauche s'il s'agit de la langue française, c'est bien, mais mon problème est que chaque message est composé d'un corps, d'une entête et pied ces 2 derniers quelque soit la langue contiennent des dates et des chiffres, pour la langue française pas de problème mais pour le cas de l'arabe, l’entête et le pied de message seront affichés à gauche alors que le corps de message sera afficher à droite, j'aimerais bien que tout le message sera affiché à droite. Si j'utilise 'Align right' dans ce que les messages en français seront aussi à droite.
Comment faire pour que les message en arabe seront écrit à droite et les messages français à gauche?
ando0098 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h46.


 
 
 
 
Partenaires

Hébergement Web