IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

lecture d'un fichier .doc


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    988
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 988
    Par défaut lecture d'un fichier .doc
    Bonjour,

    Dans une classe j'ai demandé la lecture d'un fichier .txt.
    Or la lecture de ce fichier ne me donne pas tout à fait satisfaction car elle ne me permet pas de visualiser les couleurs .
    J'aimerais donc remplacer ce fichier .txt par un fichier .doc mais je n'y parviens pas.
    Peut être que je n'utilise pas le bon contrôle pour cela(textarea).

    Pourriez vous m'aider à résoudre ce problème.
    Je vous en remercie beaucoup.
    Voici le code implémenté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
     
     
     
     
    package TP_ENIGME;
     
    import java.io.*;
    import java.net.*;
     
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
     
    public class Entree_jeu
        extends JFrame
        implements MouseListener {
     
      //ATTRIBUTS
      private JTextArea jta;
      private JScrollPane jsp;
      private URL urlFile;
      private File file;
      private String texte = "";
      private Button b1;
      private Panel p1;
      JScrollPane jScrollPane1 = new JScrollPane();
      JTextArea jTextArea1 = new JTextArea();
      JScrollPane jScrollPane2 = new JScrollPane();
      JTextArea jTextArea2 = new JTextArea();
     
      public Entree_jeu() {
        super("Test lecture fichier texte");
        setSize(600, 600);
        CreationPanneauCentre();
        CreationPanneauSud();
     
        file = new File(
            "C:/Program Files/eclipse-SDK-3.0.2-win32/eclipse/workspace/jeu/TP_ENIGME/Projet_Java_Definitif.txt");
        try {
          FileReader fr = new FileReader(file);
          BufferedReader br = new BufferedReader(fr);
          String ligne;
          while ( (ligne = br.readLine()) != null) {
            texte += ligne + "\n";
          } //fin de While
          jta.setText(texte);
          jta.setCaretPosition (0);
          setVisible(true);
          br.close();
          fr.close();
     
        } // fin de try
        catch (FileNotFoundException e) {
          jta.setText(e.toString());
        } //fin de 1er catch
        catch (IOException e) {
          jta.setText(e.toString());
     
        } // fin de 2ème catch
     
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
     
      } // fin de constructeur
     
      //Creation du panneau situé au centre de la fenêtre
      public void CreationPanneauCentre() {
        jta = new JTextArea();
        jsp = new JScrollPane(jta);
        jsp.setAlignmentX(0);
        jsp.setAlignmentY(0);
        this.getContentPane().add("Center", jsp);
        setVisible(true);
     
      } // fin de méthode CréationPanneauCentre
     
    //méthode Creation du panneau situé au sud de la fenêtre
     
      public void CreationPanneauSud() {
        b1 = new Button("CONTINUER");
        b1.addMouseListener(this);
        p1 = new Panel(new FlowLayout(FlowLayout.CENTER));
        p1.add(b1);
        this.getContentPane().add("South", p1);
        setVisible(true);
     
      } // fin de méthode CréationPanneauSud*/
     
      private void bouttonAction() {
        Choix_Niveau_Style nouvelleFenetre = new Choix_Niveau_Style();
        nouvelleFenetre.show();
        System.out.println("et voila");
        this.setVisible(false);
      }
     
      public void mouseClicked(MouseEvent e) {
        Object source = e.getSource();
        if (source == b1) {
          bouttonAction();
     
        }
      } // fin de méthode mouseClicked
     
      public void mousePressed(MouseEvent e) {}
     
      public void mouseReleased(MouseEvent e) {}
     
      public void mouseEntered(MouseEvent e) {}
     
      public void mouseExited(MouseEvent e) {}
     
      public static void main(String[] args) {
        Entree_jeu EJ1 = new Entree_jeu();
        EJ1.setVisible(true);
     
      }
     
    } //fin de classe Entree_jeu

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    tout simplement parce qu'un fichier doc est un fichier binaire et que c'est fichtrement chiant à analyser (même dans un prog comme openoffice qui les lit convenanblement bien il y a toujours des problèmes de compatibilité)

    Par contre un petit fichier XML qui va bien(à analyser par la suite avec dom sax ou encore jdom, de même pour me créer), ça pourrait le faire, ou du XHTML sinon,

    ensuite pour les couleurs les styles les polices et tout le toutim, il vaurait mieux passer par un JTextPane ou un JEditorPane plutôt que par une basique JTextArea

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 7
    Par défaut
    Tu fais comment pour mettre des couleurs dans un fichier texte (.txt). Là, t'es franchement balèze. Parce que même moi j'y arrive pas.

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    non mais typiquement je te parlais de fichier xml pour mettre des balises indiquant la couleur autour des parties le nécessitant (bon ça reste du pur texte, mais c'est le principe du formatage des documents openoffice: le format .odt correspond à quelques fichiers xml compressés en .zip.
    Puis il ne te reste qu'à parser ton xml et le reproduire sur un JTextPane ou un JEditorPane par exemple

    Sinon il existe un moyen pour créer des documents m$ office en java(enfin surtout pour excel), mais pas trop pour lire des documents word(ça devrait ariver dans pas trop longtemps chez le projet jakarta POI)......
    Sinon il te reste le HTML que le JEditorPane sais interpréter, et là tu pourras mettre de la couleur

  5. #5
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 17
    Par défaut
    Oui, tu peux essayer le JEditorPane et carrément faire du contenu HTML ou RTF, c'est encore plus simple.
    Sinon, la solution XML, c'est la plus propre à mon sens. Mais tout dépend de ce que tu veux faire

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    988
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 988
    Par défaut Lecture d'un fichier .doc
    Merci beaucoup à vous tous!
    Je pense que je vais opter pour un fichier html et remplacer le textarea par un jeditorpane.
    Pour la solution xml, je verria plus tard, mais il est clair que c'est intéressant!

    Cordialement à vous!

    Nathalie

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    988
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 988
    Par défaut Lecture d'un fichier .doc
    Bonjour,

    j'ai donc testé le remplacement du textarea par un jeditorpane et celui du fichier .txt par un fichier.html.

    En résultat , j'obtiens un fichier xml et pas du tout le contenu du fichier .html.

    Voici une partie de ce que je lis au lieu de lire mon texte.
    pourriez vous me conseiller une autre solution alors?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    42
    43
    44
     <html xmlns:o="urn:schemas-microsoft-com:office:office"
    xmlns:w="urn:schemas-microsoft-com:office:word"
    xmlns="http://www.w3.org/TR/REC-html40">
     
    <head>
    <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
    <meta name=ProgId content=Word.Document>
    <meta name=Generator content="Microsoft Word 9">
    <meta name=Originator content="Microsoft Word 9">
    <link rel=File-List href="./Jeu_java_explication_fichiers/filelist.xml">
    <title>Historique du jeu</title>
    <!--[if gte mso 9]><xml>
     <o:DocumentProperties>
      <o:Author>harbonne</o:Author>
      <o:Template>Normal</o:Template>
      <o:LastAuthor>harbonne</o:LastAuthor>
      <o:Revision>2</o:Revision>
      <o:TotalTime>17</o:TotalTime>
      <o:Created>2006-01-09T22:00:00Z</o:Created>
      <o:LastSaved>2006-01-09T22:00:00Z</o:LastSaved>
      <o:Pages>2</o:Pages>
      <o:Words>480</o:Words>
      <o:Characters>2738</o:Characters>
      <o:Lines>22</o:Lines>
      <o:Paragraphs>5</o:Paragraphs>
      <o:CharactersWithSpaces>3362</o:CharactersWithSpaces>
      <o:Version>9.2812</o:Version>
     </o:DocumentProperties>
    </xml><![endif]--><!--[if gte mso 9]><xml>
     <w:WordDocument>
      <w:HyphenationZone>21</w:HyphenationZone>
     </w:WordDocument>
    </xml><![endif]-->
    <style>
    <!--
     /* Font Definitions */
    @font-face
        {font-family:"Palatino Linotype";
        panose-1:2 4 5 2 5 5 5 3 3 4;
        mso-font-charset:0;
        mso-generic-font-family:roman;
        mso-font-pitch:variable;
        mso-font-signature:-536870009 1073741843 0 0 415 0;}
    @font-face

  8. #8
    Membre confirmé
    Profil pro
    Developpeur
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Par défaut
    c'est normal on peux ecrire des fichiers doc au format XML

  9. #9
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    mais sinon evite d'utiliser office pour tes documents html, ça ne produit un code html très spécifique

    Au lieu de ça utilise un éditeur wisiwig (si tu n'as que du texte à faire) comme nvu..

    Et accessoirement il faut appliquer le kit HTML à ton JEditorPane

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    JEditorPane monEditorPane = new JEditorPane();
    monEditorPane.setEditorKit(new  HTMLEditorKit());
    Attention le JEditorPane ne gère HTML que jusqu'au 3.2 (donc CSS au revoir)

Discussions similaires

  1. Bogue lors de lecture et affichage d'un fichier .DOC
    Par aderfat dans le forum Débuter
    Réponses: 2
    Dernier message: 12/06/2012, 08h37
  2. lecture d'un fichier .doc en visual C++
    Par L1M8E9 dans le forum Visual C++
    Réponses: 2
    Dernier message: 23/02/2010, 15h23
  3. Problème lecture fichier doc
    Par OLman135 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 31/07/2008, 14h01
  4. [VB.NET]Lecture fichier ".doc"
    Par Ensiaste2006 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/05/2007, 00h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo