2010-02-26 4 views
2

Je suis en train de développer une application dans VB.Net (VS2008) qui permet de créer des présentations en classe. La disposition est un panneau et a des panneaux d'enfant (objets de siège) les sièges sont ensuite peuplés en utilisant le glisser-déposer et afficher un aperçu de la personne assise là.Exportation d'un panneau de contrôle .Net vers une image

Je voudrais exporter ce panneau à un format imprimable tel que jpeg, pdf, etc.

J'ai essayé d'utiliser la CopyFromScreen mais je ne peux pas obtenir ce que la sortie du panneau de configuration. (une partie du panneau pourrait être hors de l'écran au moment de l'exportation)

J'ai également envisagé d'utiliser le format HTML pour la sortie de chaque siège en tant que conteneur div positionné de façon absolue. Puis imprimer la page HTML.

Qu'est-ce que les gens pensent est la meilleure solution? Et pourriez-vous fournir des exemples pour sauvegarder votre choix?

Répondre

3

Vous pouvez utiliser cette (msdn) pour dessiner le contrôle à un bitmap:

dim bmp as new Bitmap(panel.Width, panel.Height) 
panel.DrawToBitmap(bmp, panel.clientRectangle) 

Vous pouvez ensuite enregistrer le bitmap en utilisant le format que vous choisissez.

+0

Cela fonctionne de manière fantastique. Si simple! Merci! – Banford

0

Vous avez parlé de mettre le contenu d'un panneau dans une image.
Si vous utilisez WPF, vous pouvez effectuer un aperçu avant impression. There was a question pertaining to this ici sur StackOverflow, il y a juste un jour. C'est assez mécanique - tout "visuel" peut être émis dans un fichier XPS puis affiché dans un DocumentViewer. Le contrôle DocumentViewer a un bouton d'impression intégré qui imprime ce qui est affiché. Si vous utilisez WinForms, cette approche ne fonctionnera pas.

Une autre approche consiste simplement à générer l'image directement et dynamiquement.
Il existe un certain nombre d'articles traitant de la génération d'image dynamique dans ASPNET. Here's one. Je comprends que vous n'utilisez pas ASPNET, mais le code .NET est la plupart du temps le même. Vous devrez modifier ce code et produire votre mise en forme en dessinant sur l'objet Graphics. Ensuite, affichez-le dans votre panneau ou imprimez-le.

+0

Souhaitez passer à WPF ... mais pour ce projet 90% de celui-ci est déjà fait. En winforms. Merci quand même! – Banford

Questions connexes