Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1522 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Extraire le texte d'un document word

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Extraire le texte d'un document word

n°1610625
rufo
Pas me confondre avec Lycos!
Posté le 11-09-2007 à 14:45:24  profilanswer
 

Depuis ce matin, je cherche un programme (en php autant que possible) qui me permette d'extraire le texte d'un document word (.doc -> .txt). Jusqu'à présent, j'ai trouvé antiword mais j'arrive pas à le faire fonctionner via php (ni avec la fonction system() ni avec exec()) et aussi http://www.brothersoft.com/web_aut [...] 49875.html (je suis allé aussi sur le site de l'auteur voir si y'avait pas une nouvelle version), mais ça marche pas terrible.
 
Est-ce que vous avez une solution? Merci. Faudrait que ça marche tant sur un serveur sous Linux que sous Windows
 
ps : j'ai bien pensé à la solution COM pour enregistrer sous un doc word en txt mais COM c'est lourd et ça marche que sous windows :/

mood
Publicité
Posté le 11-09-2007 à 14:45:24  profilanswer
 

n°1610633
Yertle
Posté le 11-09-2007 à 15:03:44  profilanswer
 

bah a priori les .doc sont des fichiers de type propriétaire. C'est à a dire que leur codage n'est pas libre, et il n'a pas été dévoilé par microsoft.
Même quand tu ouvres des .doc avec Ooo ya des erreurs d'interprétations.
 
Autrement dit, tu pourras toujours aller lire dans un .doc, mais pour interpréter le codage du document bonne chance...

n°1610635
rufo
Pas me confondre avec Lycos!
Posté le 11-09-2007 à 15:06:48  profilanswer
 

je veux pas interpréter le fichier doc, juste récupérer son texte (comme le fait antiword) via php (et sans passer par COM).

n°1610636
Yertle
Posté le 11-09-2007 à 15:10:13  profilanswer
 

ouais j'ai bien compris mais pour récupérer le texte, t'es obligé d'interpréter la manière dont il est codé...
Si chez microsoft la lettre "e" elle est codée par "#1453.ertf;" il faut le savoir pour pouvoir récupérer la lettre "e"...

n°1610642
Yertle
Posté le 11-09-2007 à 15:14:53  profilanswer
 

En fait ske t'as qu'à faire pour t'aider, c'est écrire un ptit script php qui prend un fichier .doc et qui te donne à l'écran son contenu, codé.
Comme ça tu vois à quoi ça ressemble et si ya moyen pour en récupérer le texte...

n°1610649
rufo
Pas me confondre avec Lycos!
Posté le 11-09-2007 à 15:25:33  profilanswer
 

en ouvrant le fichier dans un éditeur de texte, j'ai le même résultat. Pas besoin de faire un script php pour ça :/ Pour info, le texte n'est pas codé. Il est "en clair" sauf qu'il est noyé dans tout un tas de caractères à la con qui servent à la mise en forme du doc.
J'ai pu voir qu'il existait en gpl des programmes qui faisaient ce que je demande. Sauf que j'arrive pas à les faire fonctionner avec la commande system() de php :( Je me demandais donc si qq'un pouvait pas m'aider à les faire fonctionner ou me proposer une lib en php déjà toute faite.

n°1610653
flo850
moi je
Posté le 11-09-2007 à 15:33:31  profilanswer
 

perso , j'utilise antiword, ca fonctionne pas mal  ( on va dire dans 90% des cas )

 

tu as quoi comme message d'erreur ?


Message édité par flo850 le 11-09-2007 à 15:33:44
n°1610672
rufo
Pas me confondre avec Lycos!
Posté le 11-09-2007 à 15:48:40  profilanswer
 

avec php, j'ai quedalle :(
Si j'utilise antiword en ligne de commande, faut que je sois dans le répertoire c:\antiword pour que ça marche et pareil pour le doc à convertir sinon, il me dit qu'il trouve pas ses fichiers 8859-1, utf-8 (ses tables de charset). Je pense que c'est dû au fait que la variable d'environnement HOME ou PATH sous Windows n'est pas positionnée avec le path d'antiword.
 
J'ai mis ça comme code dans mon script php :

Code :
  1. $Dir = $_SERVER['DOCUMENT_ROOT']."/Doc2Txt/";
  2. $Filename = "Test.doc";
  3. system("c:/antiword \"$Dir$Filename\" > \"".$Dir."Test.txt\"" );


 
ça marche pas :/ J'ai un fichier créé Test.txt vide...
 
Sinon, j'ai trouvé ça : http://www.mousewhisperer.co.uk/php_page.html  
Ca marche pas trop mal mais ça fait sauter tous les retours à la ligne ainsi que les caractères accentués (à cause de la regexp) et ça garde tout un tas de caractères bizarres en fin de fichier.


Message édité par rufo le 11-09-2007 à 15:52:35
n°1610679
flo850
moi je
Posté le 11-09-2007 à 15:55:57  profilanswer
 

j'utilise ca comme commande :
"/usr/local/bin/antiword -m UTF-8.txt ".$this->fileName." > ".$out".txt";

 

et voic le contenu de mon fichier UTF-8.txt

Code :
  1. [root@portail modules]# more /root/antiword-0.37/Resources/UTF-8.txt
  2. # UTF-8 to Unicode
  3. # This file is a dummy.
  4. # The conversion is done algorithmicly, not by a table look-up.
 

EDIT : sinon, sous windows, le plus simple est de le faire dans un langage qui gere les ifilter ( comme C# )
ca t'extrait facilement le texte d'un paquet de format ( word, excle, ppt, pdf, ... )


Message édité par flo850 le 11-09-2007 à 15:56:49
n°1610683
rufo
Pas me confondre avec Lycos!
Posté le 11-09-2007 à 16:08:05  profilanswer
 

J'utilise l'option -t pour antiword.
Bon, j'ai progressé. Pour que mon script marche, faut que je le mette dans le répertoire d'antiword. Par contre, je peux mettre mes docs à convertir dans un autre répertoire (et qui peut contenir des espaces dans son nom).
 
Je fais :

Code :
  1. exec("antiword -t \"".$Dir.$Filename."\" > \"".$Dir."Test.txt\"" );


 
Et je ne peux pas utiliser du C# sous Linux...


Message édité par rufo le 11-09-2007 à 16:09:29
mood
Publicité
Posté le 11-09-2007 à 16:08:05  profilanswer
 

n°1684093
kitch18
Posté le 08-02-2008 à 16:35:24  profilanswer
 

bonjour je souhaiterais moi avoir dans une variable php les propriété de word (mots clés , catégorie, ...)je ne trouve rien sur aucun forum si vous avez une solution merci

n°1685193
rufo
Pas me confondre avec Lycos!
Posté le 12-02-2008 à 10:23:08  profilanswer
 

Si ton serveur est sous Windows, tu peux utiliser COM, mais attention, c'est lourd!


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta
n°1685360
kitch18
Posté le 12-02-2008 à 15:18:39  profilanswer
 

oui mais comment fonction le COM car je n'est rien compris aux doc
comment il s utilise

n°1685868
rufo
Pas me confondre avec Lycos!
Posté le 13-02-2008 à 14:37:02  profilanswer
 

http://www.phpbuilder.com/columns/yunus20031124.php3
 
tu ouvres en fait un objet "word.application", après, si tu sais faire du vba, tu sais faire du COM. faut juste remplacer le . par -> ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Cantine Calandreta : http://sourceforge.net/projects/canteen-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Extraire le texte d'un document word

 

Sujets relatifs
imprimer word en pdf par pdfcreator sous xlsentrer du texte au clavier sans l'afficher, sous bash.
Positionnement d'un texte dans une DIV suite à menu déroulant[regexp] Extraire les lignes d'un tableau d'une page html
[JAVA] fusionner /concaténer des documents WORDpiloter un fichier excel intégré dans un fichier word
zone texte rondeprobleme Compression d'entier, de texte
Intégration de fichier texte dans Access en VBAouvrir un fichier word avec bouton macro excel
Plus de sujets relatifs à : Extraire le texte d'un document word


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR