slt,
j'aimerai lancer l'ouverture d'un fichier.
je fait:
mais il se passe rien.Code:
1
2
3 FileReader docPdf = new FileReader("monDoc.pdf"); docPdf.read();
auriez vous une autre idee pour qu'un document s'ouvre??
merci d'avance
Version imprimable
slt,
j'aimerai lancer l'ouverture d'un fichier.
je fait:
mais il se passe rien.Code:
1
2
3 FileReader docPdf = new FileReader("monDoc.pdf"); docPdf.read();
auriez vous une autre idee pour qu'un document s'ouvre??
merci d'avance
Tu as bien ouvert ton document, et tu as bien fait une lecture avec ton code...
Regarde juste la javadoc la dessus :
Quand tu fais ton read, il te renvoit un entier dont la valeur correspond au premier charactere de ton fichier PDF, et en plus, tu ne le récupères pas, donc tu n'as pas de résultat...Citation:
read
public int read()
throws IOException
Read a single character. This method will block until a character is available, an I/O error occurs, or the end of the stream is reached.
Subclasses that intend to support efficient single-character input should override this method.
Returns:
The character read, as an integer in the range 0 to 65535 (0x00-0xffff), or -1 if the end of the stream has been reached
Si tu veux effectivement lire ton fichier entier, avec un FileReader, essaye une variante de la methode read, genre
read(char[] cbuf,int off,int len), pour récupérer tes characteres dans un char[]...
Pour aller plus loin encore, tu ferais peut etre mieux de faire une lecture en byte, plutot qu'en char, car ton document PDF est loin de ne comporter que des characteres ASCII, à priori... Je passerai plutôt par un ByteArrayInputStream, a ta place...
ca m'etonne que l'on soit obliger d'analisez char par char pour ouvrir un fichier non??
en tout cas j'ai essayer comme t'as dit (c'est en JSP):
File docPdf = new File("Facture.pdf");
FileReader fileReader = new FileReader(docPdf);
mais ca m'affiche %PDF-1 alors que dans mon fichier j'ai ecrit HELLO WORLD :)Code:
1
2
3
4
5
6
7 char[] cBuf = new char[100000]; fileReader.read(cBuf,0,100000); %><%=cBuf[0]%><% %><%=cBuf[1]%><% %><%=cBuf[2]%><% %><%=cBuf[3]%><% %><%=cBuf[4]%><%
et moi en fait je veux pas affiché sur une page ce qu'il y a dans mon fichier, je veux juste ouvrir le fichier
Un fichier PDF n'est pas un simple fichier txt...
Essaye de l'ouvrir sous le bloc note, tu verras ce qu'il y a dedans... Tu as une en-tete au départ, avec des informations sur le PDF, et pour chaque mot/ligne/paragraphe, tu as des informations de formatage, donc ce n'est pas lisible directement en ASCII tel quel, le PDF%1 que tu as eu provient a priori de l'en-tete...
si tu relis mon post précédent, je te donne la méthode pour le lire par bloc, et non par charactere... Je te décrivais simplement au début ce que tu avais fait dans ton code, avec read()...Code:ca m'etonne que l'on soit obliger d'analisez char par char pour ouvrir un fichier non??
Quand tu dis que tu veux ouvrir le fichier, c'est en gros :
1 - Lancer Acrobat Reader
2 - Faire afficher le fichier dedans
Si c'est ca, ca dépend de la technologie que tu utilises, et comment tu veux le faire :
Application, servlet, page web, ou autre ?
j'aimerai eviter les servlets
j'ai une page JSP, et quand je la lance j'aimerai quelle ouvre un fichier PDF ou WORD (selon ce qui sera le + simple)
Ok, vous avez un post en commun avec un collegue :
http://www.developpez.net/forums/viewtopic.php?t=405019
J'ai pas la solution en JSP, je n'en fais pas encore... par contre, vous devriez discuter tous les deux sur votre probleme, visiblement, c'est le meme...
A priori, soit tu peux définir au niveau JSP le type de flux que tu vas renvoyer (et il faut le définir en tant que PDF), soit tu vas devoir générer toi meme l'en tete HTTP correspondante avant d'envoyer ton flux (je pense pas, quand meme, ca a du etre prevu dedans)...