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

Documents Java Discussion :

extraire texte word


Sujet :

Documents Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 20
    Points
    20
    Par défaut extraire texte word
    Bonjour

    Je viens d'essayer d'extraire du texte grâce à POI, ça ne fait que 2 mois que je fais du java mais j'ai un peu taté quelques heures l'api...
    Cependant j'ai une erreur con , j'ai des petits carrés à la place de mes sauts de ligne et je dois bientot rendre mon projet


    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
    else if(telecharger.letype.equals("application/msword"))
                            {
                             progressinfo.setString("parsage du lien"+a+" google ("+telecharger.lenght+" caracteres)");
                             try{
                               WordDocument ledoc = new WordDocument(nomtraitement);
                               Writer out = new OutputStreamWriter(lien = new FileOutputStream(path+"/"+"google ("+langagechoisi+")/"+"lien"+a+".txt"));
                               ledoc.writeAllText(out);
                               String tmp=out.toString();
                               // tmp=tmp.replaceAll("","\n\r");
                               out.flush(); 
                               out.close(); 
                               metabalise.close();
                            }catch(Exception exception){}
                            //  monparser.texteparse = "fichier word identifié \r\n";
                           }
    Voili voilou j'en suis assez fiere vu que je trouve aucune source qui marche pour extraire du texte d'un fichier word

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    mets des "\r\n" au lieu de "\n\r"
    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.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 20
    Points
    20
    Par défaut
    C'est pas le probleme, j'arrive même pas à les identifier dans mon buffer, et sinon je me suis dis qu'il doit bien y avoir un type de buffer qui gére ça , j'ai déja eut ce probléme en téléchargeant des fichiers, finalement je me suis servit de la fonction readline() d'un Bufferreader.
    Mais la je séche, je comprend pas comment java gére sa mémoire et le pourquoi du comment de ces sauts de lignes, sinon c'est vrai que j'ai essayé de remplacer ces petits carrés avec un replaceall, mais quand je colle le petit carré dans eclipse c'est un saut de ligne ... de quoi devenir fou ...

  4. #4
    Membre expert
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Points : 3 135
    Points
    3 135
    Par défaut
    J'ai fait une petite appli qui devait extraire des donnée d'un word.
    en utilisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WordExtractor extractor = new WordExtractor(is);
    		String text = extractor.getText().replace('\n', ' ').replace('\r', ' ').trim(
    Je n'avais plus de problème.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 20
    Points
    20
    Par défaut
    Il manque la fin de ton code , je ne me suis jamais servi de trim.
    Et je n'ai pas la fonction getText() pour mes wordDocuments, je pense qu'elle est dans hpwf mais je ne l'ai pas trouvé dans
    - poi-2.5.1-final-20040804.jar
    - poi-contrib-2.5.1-final-20040804.jar
    - poi-scratchpad-2.5.1-final-20040804.jar

    Donc je crois qu'il me reste 2 solutions , ou
    - trouver cette classe hwpf et deduire la fin de ton code
    - ou ce que je demandais virer les petits carrés en les identifiant dans mon code ou en les traitant par des buffers différents que je ne connais pas ...


  6. #6
    Membre expert
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Points : 3 135
    Points
    3 135
    Par défaut
    Citation Envoyé par cterra
    Il manque la fin de ton code , je ne me suis jamais servi de trim.
    Et je n'ai pas la fonction getText() pour mes wordDocuments, je pense qu'elle est dans hpwf mais je ne l'ai pas trouvé dans
    - poi-2.5.1-final-20040804.jar
    - poi-contrib-2.5.1-final-20040804.jar
    - poi-scratchpad-2.5.1-final-20040804.jar

    Donc je crois qu'il me reste 2 solutions , ou
    - trouver cette classe hwpf et deduire la fin de ton code
    - ou ce que je demandais virer les petits carrés en les identifiant dans mon code ou en les traitant par des buffers différents que je ne connais pas ...

    Après je ne fait que des manipulation sur la string text donc tu à tout mon code pour la partie extraction du text de word.
    J'utilise la version 3.0, ce qui explique peut-être que tu n'a pas les même classes que moi

    trim() ne sert qu'a supprimer les espace au début et à la fin d'une chaine.

    en relisant ton code j'ai l'impression que tu as inversé les arguments de ton replaceAll()
    replaceAll que j'ai dans mons code sous la forme .replace('\n', ' ').replace('\r', ' ')

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 20
    Points
    20
    Par défaut
    je viens de mettre à jour :
    - poi-3.0-alpha2-20060616.jar
    - poi-contrib-3.0-alpha2-20060616.jar
    - poi-scratchpad-3.0-alpha2-20060616.jar


    Mais la classe WordExtractor n'est pas dedans ... c'est bien ce que je pense elle est dans "org.apache.poi.hwpf.extractor.WordExtractor" mais je ne sais pas ou la trouver ...

  8. #8
    Membre expert
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Points : 3 135
    Points
    3 135
    Par défaut
    Citation Envoyé par cterra
    je viens de mettre à jour :
    - poi-3.0-alpha2-20060616.jar
    - poi-contrib-3.0-alpha2-20060616.jar
    - poi-scratchpad-3.0-alpha2-20060616.jar


    Mais la classe WordExtractor n'est pas dedans ... c'est bien ce que je pense elle est dans "org.apache.poi.hwpf.extractor.WordExtractor" mais je ne sais pas ou la trouver ...
    J'ai les même jars, donc tu as forcément la classe org.apache.poi.hwpf.extractor.WordExtractor

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 20
    Points
    20
    Par défaut
    Exact ça y était je craque
    J'ai du faire le import , mais je sais pas d'habitude quand j'utilise les externals jar j'avais pas l'impression de le faire ... bref
    ça marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                                 File rapport =new File(nomtraitement);
                                 FileInputStream istream; 
                                 istream = new FileInputStream(rapport);
                                 WordExtractor extractor = new WordExtractor(istream);
                                 monparser.texteparse = extractor.getText().replace('\n', ' ').replace('\r', ' ');
    texteparse est écrit dans un fichier par la suite grace a la méthode "getbyte()"
    Mais j'ai encore plus de petit carré avec "replace('\n', ' ').replace('\r', ' ')"

    je deviens fou

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 20
    Points
    20
    Par défaut
    Les carrés ne sont pas des '\n' ou des 'r', j'ai essayé , ils sont bien traduis désormais.
    je ne sais pas comment identifié ces carractères "", mais j'aimerai bien savoir si quelqun à le même problème que moi que je sache si c'est la fiabilité de hwpf qui est en cause ou si j'ai une erreur dans mon code que je peux corriger ...
    Et j'aimerai savoir si il y a des mises à jour disponibles pour la classe WordExtractor qui n'est apparement pas une version aboutie (même si apparement le .jar date du 16 juin ...)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    La lecture des fichiers word par POI n'est pas franchement opérationelle^, et le projet n'est plus vraiment maintenu par manque de temps des dev et XXX autres raisons, donc il ne faut pas espérer avoir quelque chose d'utilisable en prod ^^
    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.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 20
    Points
    20
    Par défaut
    Est-ce qu'il existe un projet plus fiable que POI (hwpf) même sous licence propriétaire ?

    http://schmidt.devlib.org/java/libraries-word.html

    j'ai trouvé ce lien, mais je n'arrive pas à en savoir bcp plus, car apparement POI traite bien les documents word jusque word 2002.
    Les autres projets sont ils fiables ?

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Passer par le sdk OpenOffice pour converir ton word en odt et le manipuler à ta guise avec le sdk....
    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.

  14. #14
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Où avez-vous récupéré ce HWPF ? Je ne l'ai pas trouvé dans la release (2.5.1) ni dans la version 3.0 alpha.
    Christophe

    Pensez à mettre quand c'est le cas.

Discussions similaires

  1. Extraire Texte Word avec POIFS et non HWPF
    Par Sebou77 dans le forum Documents
    Réponses: 2
    Dernier message: 30/06/2007, 13h58
  2. Enregistrer les données d'une table dans un fichier texte word ou excel
    Par maamar1979 dans le forum Connexion aux bases de données
    Réponses: 2
    Dernier message: 14/06/2006, 13h41
  3. archivage d'un texte word dans un site php mysql
    Par mambax dans le forum Outils
    Réponses: 1
    Dernier message: 14/04/2006, 10h52
  4. Creer une requéte access pour choisir des textes word
    Par mariekero dans le forum Access
    Réponses: 1
    Dernier message: 16/01/2006, 10h25

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