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

Signaler
Messages postés
54
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
10 août 2008
-
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
-
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

Messages postés
2448
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
17
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"
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
37
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. 
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
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
Messages postés
54
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
10 août 2008
1
mç pour vos messages,


mais comment resoudre le pb de l'appostrophe avec les docs *.txt?
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
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
Messages postés
54
Date d'inscription
lundi 11 juillet 2005
Statut
Membre
Dernière intervention
10 août 2008
1
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 !!!
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
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
Messages postés
40
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
24 novembre 2010

comment Afficher le contenu d'un fichier excel dans une page JSP
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
37
Salut:

Il y a plusieurs API pour manipuler les fichiers Excel:

1. POI d'APACHE
2. JExcel
3. ...