C# - Word automation

Résolu
gobordeaux Messages postés 2 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 17 février 2009 - 12 févr. 2009 à 10:21
gobordeaux Messages postés 2 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 17 février 2009 - 17 févr. 2009 à 15:13
Bonjour,

Nous développons une application pour une profession libérale, en C#, qui utilise l'automation de Word (2003 et 2007)

De notre côté, nous n'utilisons aucune prog/macro dans Word même.

Par contre, nous rencontrons souvent le cas où, sur la même machine, un autre logiciel utilisant également Word, avec ses propres modèles, chargés par défaut, nous pose des problèmes et exécute du code. Exemple : Lorsque nous enregistrons nos document, du code ne nous appartenant pas est exécuté (surement dans le before_save ou before_close...). Sans parler des barres d'outils spécifiques aux autres produits, et dont on hérite.

Comment 'libérer' notre propre instance de Word de ces modèles qui nous parasitent ?
En bouclant sur les Addins, et en les désinstallant (j'ai même tenté un .delete)
                        oWinWord.AddIns.Item(ref ii).Installed = false;
                        oWinWord.AddIns.Item(ref ii).Delete();
Ceci n'a aucun effet.

Une solution serait vraiment la bienvenue. Si possible qui nous libére des modèles qui nous empoisonnent, mais qui laisserait l'autre programme fonctionner correctement... en même temps.

Merci d'avance,
Eric

2 réponses

titeoe Messages postés 433 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 4 décembre 2009 1
15 févr. 2009 à 22:12
Bonjour,

Personnellement, je ne suis pas fan de l'automation de Word. On ne sais jamais ce qui nous attends, ce que les clients installent ou pas et quand aux versions, c'est carrément la foire !!

La meilleure manière de faire est ... de ne pas faire. (non non, je ne suis pas fou).

Si tu veux générer du word, je te conseille vivement un produit qui s'apelle Aspose Word et qui te permet de générer des documents Word sans utiliser le modèle Word (sans automation donc). Ensuite, tu peux sauvegarder le document crée dans n'importe que format.
Ceci t'offre donc la possibilité de générer du word 2003 /2007 mais aussi di Open Office, du PDF, du RTF ...

http://www.aspose.com/categories/file-format-components/aspose.words-for-.net-and-java/default.aspx

Attention, ce n'est pas de l'open source donc il y a un cout de license. Mais quand tu vois la puissance de la bete, tu vois vite qu'avec Aspose, tu passe 2 jours a dfaire un truc qui marche du premier coup alors que tu galere 6-7 jours avec de l'automation (sans compter les problemes de déploiement, du type de ceux qui t'on amenné ici).

Fais le ratio en terme de cout de license VS charge de développement et tu verras que ca vaut le coup.

Pour info, sur mon dernier projet nous avons acheté un license Full Aspose (6000$) soit 10 jours de facturation pour faire un truc qui lui aurais couté entre 20 et 30 jours de développements (soit 18000$). Ca calme.
3
gobordeaux Messages postés 2 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 17 février 2009
17 févr. 2009 à 15:13
Merci pour ta réponse.

Effectivement, je me tourne vers une solution de ce genre (je regardais Tx Text .net), mais ça, c'est pour le moyen/long terme (la v2 de notre prog, en gros).
Pour l'instant je dois faire avec Word (c'est déployé chez 90 clients) et c'est la m... !
A l'heure qu'il est, on leur demande de pas lancer les 2 applis qui utilisent Word, en même temps. On "nettoie" le dossier startup de Word au lancement de notre appli, et on remet en ordre en quittant. C'est pas la panacée, mais ça limite les dégâts.
Disposer d'un Word 'propre', alors qu'il a été lancé par une appli, qui lui fait charger ses barres d'outils, ses macros, je n'y crois plus beaucoup...
0
Rejoignez-nous