Logo

Recherche Full-Texte ss windows ds Documents Word

Last modified: 03/14/2006 10:36 AM
Mise en place de la recherche full-texte, sous Windows, dans fichiers attachés au format Word.

VERSIONS PRESENTES


* Zope : unreleased version, python 2.3.4, win32
* Python : Version 2.3.4 (#53, May 25 2004, 21:17:02)
* CPS : 3.2.4-1
* Windows : XP
* Word : 2000

1°) RECUPERER ET INSTALLER "Python for Windows Extensions"


* Site à l'adresse suivante : "http://starship.python.net/crew/mhammond/"

* Télécharger win32all-163.exe à l'adresse suivante : "http://starship.python.net/crew/mhammond/win32/Downloads.html"

* Installer win32all-163.exe : L'exe doit être dézippé dans le répertoire "site-packages" (Ce répertoire est peut-être créé s'il n'existe pas : à vérifier).

Sur ma machine le répertoire d'installation obtenu est : "C:\CPS3.2.4-1\Python\Lib\site-packages"

Il n'a donc PAS été installé ni sous l'instance CPS ("C:\CPS3.2.4-1\Data\Products") ni sous ZOPE ("C:\CPS3.2.4-1\Zope\lib\python")

2°) Apporter des corrections necessaires dans le script Python : Office_com.py

Erreurs à l'éxécution : "AttributeError: wdBrowserLevelv4" et "AttributeError: wdFormatHTML"

Lors des tests effectués (c'est à dire lorsque l'on inclu un fichier attaché de type word (.Doc) dans un document CPS), CPS plante à deux endroits (script Office_com.py).

Exemple de plantage s/ AttributeError: wdBrowserLevelV4 :

Module Products.PortalTransforms.transforms.word_to_html, line 35, in convert
Module Products.PortalTransforms.transforms.office_com, line 34, in convert
Module win32com.client, line 168, in __getattr__
AttributeError: wdBrowserLevelV4


Deux corrections ont donc été apportées dans ce script afin de contourner le problème.

1er Plantage : Variable wdBrowserLevelV4 non reconnue

Commentaire

Cette variable est utilisée par MicroSoft et sa valeur peut être trouvée sur le site de MicroSoft :  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/off2000/html/woproBrowserLevel.asp
Pour ce qui me concerne (j'utilise Word 2000) la valeur est 0.

Correction apportée dans le script

#La valeur 0 a été récupérée sur le site de microsoft et est prévue pour word 2000
#word.ActiveDocument.WebOptions.BrowserLevel = constants.wdBrowserLevelV4
word.ActiveDocument.WebOptions.BrowserLevel = 0


2ème Plantage : Variable wdFormatHTML non reconnue

Commentaire

Cette variable est utilisée par MicroSoft et sa valeur peut être trouvée sur le site de MicroSoft http://msdn.microsoft.com/library/default.asp?url=/library/en-us/off2000/html/woproSaveFormat.asp
Pour ce qui me concerne (j'utilise Word 2000) la valeur est 8.

Correction apportée dans le script

#La valeur 8 a été récupérée sur le site de microsoft et est prévue pour word 2000
#doc.SaveAs(FileName="%s.htm" % (self.fullname), #FileFormat=constants.wdFormatHTML)
doc.SaveAs(FileName="%s.htm" % (self.fullname),FileFormat=8)

Valider le script corrigé

Afin que Zope/Cps prenne en compte la modification, détruisez Office_com.Pyc.
Il sera recrée automatiquement par la suite (Lors du prochain chargement d'un fichier attaché de type Word).



preview.PNG
Le Preview

3°) Mise en Place définitive


Destruction du "Portal_Transforms" existant


Utiliser la ZMI (cochez-le puis delete)

Regénération du nouveau "Portal_Transforms"


Utiliser la ZMI.
Clickez sur "Portal_transforms_installer" et sur l'onglet "Test".
Contrôler le "Portal_Transforms" : il devrait cette fois porter la ligne : "word_to_html"

Cas des documents créés

Si vous avez créé votre document dans "Portal_Types", vérifiez bien que :
  • la pièce jointe déclarée dans "Portal_Schemas" porte bien la coche "Indexed by searchable Text"
  • la pièce jointe dans "Portal_layout" porte bien dans le champ "Allowed file suffixes" les formats souhaités :  ".Doc"


Tests (contrôle du Preview)


Créer ou utiliser un document avec possibilité de joindre un fichier attaché.
Indiquer l'adresse de votre document word, et chargez-le.
Enregistrer le document.
Contrôler que votre document porte bien le "Preview" (Prévisualisation) comme dans la vignette ci-dessus.
Ci c'est le cas votre recherche va fonctionner : vérifiez par l'option "Recherche" que vous trouvez bien un mot contenu dans votre document (que vous aurez préalablement recherché "of course").

Bon courage.

N'hésitez pas à me laisser vos commentaires et retours d'expérience.








This site is powered by CPS, which includes CPSSkins. CPS and its design are Copyright © 2002-2006 Nuxeo SAS.
CPSSkins is Copyright © 2003-2006 Jean-Marc Orliaguet.
powered_by_nuxeo.png