Affichage du contenu d'un fichier word dans une page JSP

rakyouna Messages postés 54 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 10 août 2008 - 22 sept. 2006 à 15:18
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 16 mai 2008 à 19:31
Salut à tous,

j'ai un problème avec l'affichage du contenu d'un fichier texte (*.txt ou *.doc) sur une page JSP.
Quand j'exécute le code suivant, avec un fichier *.txt, chq occurence d'une apostrophe (') se transforme en un point d'interrogation (?) c'est qui me gène.
Et dans le cas ou j'utilise un fichier word *.doc j'obtiens pas mal de caractères bizarres en plus du texte que je veux afficher.
Est-ce que quelqu'un a une idée pour resoudre ce pb

Merci d'avance

<%@ page language="java" import="java.io.*" %>
<html>
<head>
<title>
AfficherFichier
</title>
</head>



Afficher un fichier texte

<%
    BufferedReader lecteurAvecBuffer = null;
    String ligne;
    try
      {
        lecteurAvecBuffer = new BufferedReader
          (new FileReader("C:/cv.txt"));
      }
    catch(FileNotFoundException exc)
      {
        System.out.println("Erreur d'ouverture");
      }
    while ((ligne = lecteurAvecBuffer.readLine()) != null)
    {
      System.out.println(ligne);
      %>
      <%=ligne%>

      <%
    }
    lecteurAvecBuffer.close();
%>

</html>

9 réponses

sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
22 sept. 2006 à 18:01
lol pour le word c'est normal tu pourras pas y remedier
pour un txt ca depend peut etre de l'encodage ...

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
24 sept. 2006 à 10:38
Salut :

Juste une remarque, ce qui fait la différence entre un fichier *.TXT et un fichier *.DOC est du fait que le dernier contient une entête (contenant des informations).

D'où pour lire un fichier *.DOC il faut "sauter" cette entête.
D'après ce que je sais est que cette entête est de longueur 0x0A00.

Donc il faut utiliser :
la méthode
[mk:@MSITStore:G:\Mes%20Cours\Java\Documentation\j2se6.chm::/j2se6/api/java/io/RandomAccessFile.html#HTML_TO_HH_21993

seek(long offset)

]
 
// tel que offset = 0xA00

de la classe java.io.RandomAccessFile   

Remarque :

pour s'assurer de ce que je dis : utliser un éditeur héxadécimal pour localiser les données d'un fichier *.DOC et vous allez voir que l'offset (déplacement) est de 0x0A00.

Ceci résoud la moitié du problème car on ne sait pas quand s'arrêter lors de la lecture.
(Je sais que c'est pas pratique mais mettez un caractère pour signaler la fin du fichier .*DOC)

Une dernière remarque cherche un article qui explique la structuration d'un fichier *.DOC, ça va vous permettre de touver la solution idéale. 
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
24 sept. 2006 à 12:34
Salut,

il est totalement
inutile d'essayer de lire un .doc sans refaire la terre entiere vu
que ce n'est absolument pas un fichier texte standard mais un
binaire sauce crosoft.... Cependant en cherchant sur google tu trouveras des api pour y avoir acces

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
rakyouna Messages postés 54 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 10 août 2008 1
24 sept. 2006 à 16:47
mç pour vos messages,


mais comment resoudre le pb de l'appostrophe avec les docs *.txt?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
24 sept. 2006 à 23:24
Salut,

pour ton prob d'apostrophe je rejoins [auteurdetail.aspx?ID=234347 sheorogath] vérifie l'encodage deton fichier

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
rakyouna Messages postés 54 Date d'inscription lundi 11 juillet 2005 Statut Membre Dernière intervention 10 août 2008 1
25 sept. 2006 à 08:26
Merci mais comment puis-je vérifier l'encodage d'un fichier *.txt? (le fichier n'est pas connu à l'avance)
En plus, je ne sais pas si le fichier est *.doc ou *.txt, c'est l'utilisateur de mon application qui va choisir chq fois quel format de fichiers (parmi ces 2 formats) il va entrer.
Supposant qu'on ne va traiter que des fichiers *.txt, MERCI de m'expliquer un peu plus comment vérifier l'encodage pour assurer un bon affichage !!!
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
25 sept. 2006 à 09:33
Salut,


serieux oublie la lecture de .doc sans api ou sans connaitre de protocol.


sinon pour tester l'encodage ou meme le changer utilise les techno nio et Charset

voici un exemple pris ICI :

import java.io.*;

import java.nio.*;

import java.nio.charset.*;

public class Charset1

{

  static public void main( String args[] ) throws Exception {

    CharBuffer carBuf = CharBuffer.wrap("abcd\u00E9");

    System.out.println("CharBuffer = "+carBuf );

Charset charset = Charset.forName("ISO-8859-1");

    System.out.println("Charset ISO-8859-1");

    ByteBuffer byteBuf = charset.encode(carBuf);

    System.out.println("ByteBuffer charset.encode(carBuf) : ");

    while (byteBuf.remaining()>0) 

      System.out.print(UnicodeFormatter.byteToHex(byteBuf.get())

                       + " " );

    System.out.println();

    byteBuf.flip();

    CharBuffer carBuf2 = charset.decode(byteBuf);

    System.out.println("CharBuffer charset.decode(byteBuf) : "

                       +carBuf2 );   



    charset = Charset.forName("UTF-8");

    System.out.println("Charset UTF-8");

    carBuf.flip();

    byteBuf = charset.encode(carBuf);

    System.out.println("ByteBuffer charset.encode(carBuf) : ");

    while (byteBuf.remaining()>0) {

      System.out.print( UnicodeFormatter.byteToHex(byteBuf.get()) + " " );

    }

    System.out.println();

    byteBuf.flip();

    carBuf2 = charset.decode(byteBuf);

    System.out.println("CharBuffer charset.decode(byteBuf) : "+carBuf2 );      

   }

}


------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
jspimen Messages postés 40 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 24 novembre 2010
16 mai 2008 à 17:19
comment Afficher le contenu d'un fichier excel dans une page JSP
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
16 mai 2008 à 19:31
Salut:

Il y a plusieurs API pour manipuler les fichiers Excel:

1. POI d'APACHE
2. JExcel
3. ...
0
Rejoignez-nous