Précédent   Forum des professionnels en informatique > Java > Général Java
Général Java Java SE, Java ME, APIs, Persistance, JDBC, Spring, XML. Avant de poster -> FAQ Java, Sources Java
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 01/02/2012, 11h16   #1
Membre chevronné
 
Avatar de shaun_the_sheep
 
Homme
Chef de projet NTIC
Inscription : octobre 2004
Messages : 1 148
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 148
Points : 605
Points : 605
Par défaut Générer un PDF à la volée

Bonjour,

Je cherche une solution pour générer à la volée un fichier pdf à partir d'un tableau de byte que je récupère de ma base de données.

Ce pdf doit être afficher dans le navigateur web de l'utilisateur.

Cela est il possible ?

Merci de votre aide.

(version de java 1.5)
shaun_the_sheep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 11h23   #2
Modérateur
 
Avatar de sinok
 
Inscription : août 2004
Messages : 8 227
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2004
Messages : 8 227
Points : 10 910
Points : 10 910
Bah, tout dépend de ce que contient ton tableau de bytes...
__________________
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.
sinok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 11h24   #3
Membre chevronné
 
Avatar de shaun_the_sheep
 
Homme
Chef de projet NTIC
Inscription : octobre 2004
Messages : 1 148
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 148
Points : 605
Points : 605
bien le pdf lui même .....
shaun_the_sheep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 12h05   #4
Modérateur
 
Avatar de sinok
 
Inscription : août 2004
Messages : 8 227
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2004
Messages : 8 227
Points : 10 910
Points : 10 910
Ton application s'exécute sur un serveur ou sur le poste client?
__________________
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.
sinok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 12h14   #5
Membre émérite
 
Inscription : mai 2006
Messages : 787
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 787
Points : 837
Points : 837
Salut,

J'imagine que tu utilises des servlets. Dans ce cas (et meme si tu utilises une applet d'ailleurs), tu peux utiliser une bibliotheque qui genere des etats. En gratuit, il y a iReport qui s'appuie sur JasperReport.

a+
hwoarang est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 13h50   #6
Membre chevronné
 
Avatar de shaun_the_sheep
 
Homme
Chef de projet NTIC
Inscription : octobre 2004
Messages : 1 148
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 148
Points : 605
Points : 605
C'est du Web en architecture Tomcat , pour être précis mais cela ne doit pas vraiment avoir d'importance , il s'agit de Portlet ...

donc c'est du client / serveur.
shaun_the_sheep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 14h26   #7
Membre émérite
 
Inscription : mai 2006
Messages : 787
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 787
Points : 837
Points : 837
Citation:
Envoyé par beegood Voir le message
C'est du Web en architecture Tomcat , pour être précis mais cela ne doit pas vraiment avoir d'importance , il s'agit de Portlet ...

donc c'est du client / serveur.
Non, ca veut dire que l'application java tourne coté serveur, pas client. Et pour les pdf, il y a la solution de passer par un editeur d'etat dont j'ai deja parlé ou bien d'une librairie pdf comme Apache PDFBox.
hwoarang est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 14h34   #8
Membre chevronné
 
Avatar de shaun_the_sheep
 
Homme
Chef de projet NTIC
Inscription : octobre 2004
Messages : 1 148
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 148
Points : 605
Points : 605
j'avais fait cela à une certaine époque , mais cela part d'un fichier stocké sur le serveur tomcat . Et je n'ai jamais utilisé de librairie annexe ...

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
 
			  //--------------------
			  //Ouverture du fichier
 
			  response.setContentType("application/pdf"); 
		      OutputStream out = response.getOutputStream(); 
 
			  File fichier = new File(fileName); 
			  try
			  { 
 
				BufferedInputStream in = new BufferedInputStream(new FileInputStream(fichier)); 
				byte[] buffer = new byte[1024]; 
				int read = in.read(buffer, 0, buffer.length); 
				while (read != -1) { 
				   out.write(buffer, 0, read); 
				   read = in.read(buffer, 0, buffer.length); 
				} 
				in.close(); 
				out.flush(); 
				out.close(); 
 
			 }
			 catch (FileNotFoundException e)
			 {e.printStackTrace();} 
			 catch (IOException e) 
			 {e.printStackTrace();}
est il possible d'avoir la même chose mais à la volé ?
shaun_the_sheep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 15h02   #9
Expert Confirmé Sénior
 
Inscription : septembre 2004
Messages : 5 095
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 095
Points : 7 021
Points : 7 021
Citation:
Envoyé par beegood Voir le message
est il possible d'avoir la même chose mais à la volé ?
Ben oui... Même chose, mais au lieu de lire l'InputStream d'un fichier, tu lis l'InputStream de quoi que ce soit qui te fournit ton PDF...
thelvin est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 15h17   #10
Membre émérite
 
Inscription : mai 2006
Messages : 787
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 787
Points : 837
Points : 837
Citation:
Envoyé par beegood Voir le message
est il possible d'avoir la même chose mais à la volé ?
Ton code ne fait que lire un fichier sur le serveur et l'envoyer au client. Mais tu n'as toujours pas répondu à la question "que contient ta BDD ?". Si c'est le contenu du fichier pdf en question, alors il suffit de recuperer par requete les données et les envoyer. Si c'est des données à mettre en forme, tu ne couperas pas à une librairie qui le fait (a moins de vouloir ré-inventer la roue).

Si tu es dans le premier cas, il faut faire :
Code :
InputStream is = rs.getBinaryStream("MON_CHAMP");
Puis utiliser ton code.
hwoarang est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 15h27   #11
Membre chevronné
 
Avatar de shaun_the_sheep
 
Homme
Chef de projet NTIC
Inscription : octobre 2004
Messages : 1 148
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 148
Points : 605
Points : 605
bien il s'agit déjà d'un fichier PDF qui a été importé en base sous forme de blob

l'extrait de code partait du même principe mais je générais d'abord le fichier physiquement ...
shaun_the_sheep est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 17h53   #12
Membre chevronné
 
Avatar de shaun_the_sheep
 
Homme
Chef de projet NTIC
Inscription : octobre 2004
Messages : 1 148
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 148
Points : 605
Points : 605
bonsoir et merci à tous ...

cela fonctionne bien effectivement ...
shaun_the_sheep est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h21.


 
 
 
 
Partenaires

Hébergement Web