2010-01-05 18 views
0

J'ai besoin de construire un plugin MS Word 2007 qui fournit un bouton qui, lorsqu'il est cliqué, télécharge le document Word sur un service web en XML.XML significatif à partir du plugin MS Word

Jusqu'à présent, cela ne semble pas être très problématique, mais le client a l'exigence supplémentaire qu'il veut que le XML soit significatif. Ils enregistrent au format texte, mais veulent certaines zones du document à l'intérieur de certaines balises englobées par exemple:

<WordDocument> 
    <TagArea1> 
     *word style xml for this bit of the document here* 
    </TagArea1> 
    <TagArea2> 
     *word style xml for this bit of the document here* 
    </TagArea2> 
</WordDocument> 

Leur idéal est d'avoir des modèles qu'ils peuvent définir des sections sur que lorsque téléchargé créer ce style de XML. La raison de l'utilisation de Word et non d'une technologie basée sur un formulaire est qu'il est important de garder la mise en forme cohérente et de pouvoir choisir où les sauts de page se produisent, etc., est vital pour eux. Je suis inquiet que ce type de fonctionnalité ne soit pas possible mais je suis assez nouveau pour le développement dans les applications Office, donc certains pointeurs seraient grandement appréciés.

+0

Soit votre explication n'est pas claire ou votre tâche est impossible. (Bien que vous puissiez redéfinir le document en utilisant des feuilles de style pour convertir à partir de Word vers un format XML interne et revenir à nouveau.) –

+0

Où pensez-vous que ma question n'est pas claire? Faites le moi savoir et j'ajouterai plus de détails. – colethecoder

Répondre

2

Je le téléchargerais en tant que docx (fichier zip avec xml + ressources) et le manipulerais en utilisant System.IO.Packaging. Je sais que vous pouvez faire des formulaires dans Word, mais je ne suis pas sûr exactement comment cela est représenté dans le docx xml. Je commencerais par créer un formulaire dans Word, l'utiliser, l'enregistrer comme un docx, puis séparer le XML pour voir ce qu'il y a dedans. En d'autres termes, j'utiliserais les installations déjà présentes plutôt que d'essayer de bidouiller quelque chose.

+2

Une autre option à la place d'un paquet docx sauvegardé pourrait également être d'utiliser le format dit Flat-OPC (voir http://blogs.msdn.com/ericwhite/archive/2008/09/29/the-flat-opc- format.aspx). Ceci est par exemple disponible à partir de la propriété 'ActiveDocument.WordOpenXML' et également le format utilisé lorsque vous développez un filtre d'exportation de fichier personnalisé (voir http://msdn.microsoft.com/en-us/library/dd300649.aspx). Le format OPC à plat présente l'avantage de ne pas avoir à enregistrer une copie locale du document avant de pouvoir le télécharger sur le service Web et de pouvoir effectuer des modifications plus facilement, par ex. en appliquant un XSLT. –

+0

Cela semble être une solution beaucoup plus simple. – Will

1

Vous pouvez essayer d'utiliser des contrôles de contenu (sdts) liés à votre propre partie XML. Évitez le désordre de brevet d'i4i cependant. Voir le Gray Knowlton post

+0

+1 Les contrôles de contenu ont été conçus en tenant compte de ce scénario spécifique et constituent probablement le meilleur choix. –