2010-08-05 6 views
3

Je dois générer un document winword pour l'application d'impression de badges.Gestion du contenu du document WinWord pour l'application d'impression des badges. Meilleure pratique

Le scénario de base est le suivant: L'utilisateur sélectionne les employés dans la liste, clique sur "imprimer les badges", winword apparaît pour permettre à l'utilisateur de faire quelques éditions avant l'impression. Les badges doivent être représentés sous forme de tableau avec quelques colonnes. Chaque cellule de tableau a un fond d'image (badge), du texte (société, année), le nom d'utilisateur & photo d'utilisateur sur le fond de badge. Il est également nécessaire d'avoir un modèle de badge modifiable pour l'utilisateur via winword.

Je ne suis pas très friand des interfaces COM d'automatisation MS Word car elles sont assez lentes, ont tendance à se bloquer. Peut-être que je devrais jouer avec le contenu du document XML winword via XML DOM. Peut-être y a-t-il une bonne bibliothèque gratuite qui enveloppe winword DOM ou des bibliothèques fournies avec Studio 2010? Que vas-tu suggérer?

Merci d'avance!

+0

@ViAndrew Florko: Est-ce que ci-dessous répond à votre question? –

+0

Enfin, j'ai implémenté ceci via winword xml l'analyse et les transformations. Il y avait beaucoup de bonnes réponses, eh bien, laissez votre être le meilleur :) –

Répondre

2

je partirais avec Visual Studio Tools for Office pour celui-ci. Vous pouvez siogle (cela signifie "rechercher SO" - je viens de le faire) le VSTO Tag on SO pour cela. Il y a des avantages et des inconvénients, comme n'importe quoi, mais pour votre situation, c'est exactement ce dont vous avez besoin. This page a beaucoup de bons articles sur le sujet.

2

Voici un lien vers le SDK Office XML pour la manipulation des documents Office 2007/2010.

http://msdn.microsoft.com/en-us/library/bb448854.aspx

Ce SDK facilite le travail avec des documents Office sans installer Word ou faire COM Interop, mais semble généralement (pour moi) d'exiger un peu plus d'effort pour accomplir certains types de tâches.

+0

+1 pour le lien ... Je n'ai jamais même regardé cela avant ... Il me semble encore apprendre que ce serait plus de travail que nécessaire pour ce scénario simple, mais c'est une bonne ressource. Je vous remercie! – David

+0

@ David-Stratton: Oui, je vous entends. Il bat battre tout le XML à la main, mais n'a pas l'élégance de COM interop. – kbrimington

2

Cela peut ne pas être ce que vous cherchez, mais je déteste absolument automatiser Office (ou d'autres applications tierces) à partir du code .Net. Non seulement c'est compliqué, mais c'est généralement beaucoup plus difficile que ça doit l'être. Dans ce cas, Word a la possibilité de tout faire, sauf vous permettre de sélectionner une liste d'employés, donc je contournerais le problème. Au lieu d'avoir l'application créer le document Word, je ...

  1. Mettre en place un doc Word pour utiliser les fonctionnalités déjà intégrées pour imprimer des étiquettes de nom dans une liste comme décrit ici: http://www.ehow.com/how_5085472_make-name-tags-microsoft-word.html
  2. code le programme pour écrire les données nécessaires pour les étiquettes de nom dans un fichier texte, basé sur les employés sélectionnés dans mon interface utilisateur.
  3. Demandez au programme de charger simplement le document Word et d'exécuter la macro pour imprimer les étiquettes. (Vous pouvez même le faire en utilisant une classe System.Diagnostics.Process par souci de simplicité. C'est expliqué dans this post d'un autre forum et this MSDN entry.)
Questions connexes