2009-01-19 10 views
2

J'ai un projet Silverlight 2.0 qui permet à un utilisateur d'ajouter du texte et des images à un canevas. Ils peuvent déplacer, faire pivoter et redimensionner le texte/les images. Je me demandais la meilleure façon de sérialiser les objets Silverlight dans une base de données et aussi de générer un PDF de la toile à imprimer.Comment enregistrer un canevas Silverlight 2.0 dans une base de données et l'exporter au format PDF

J'ai lu des articles sur l'appel d'un service Web et la transmission des données sérialisées, puis sur l'enregistrement et la génération du fichier PDF. Ma question principale est de savoir comment sérialiser efficacement les objets Silverlight afin qu'ils puissent être redessinés lorsqu'un utilisateur revient et s'il existe un moyen simple d'enregistrer le canvas sous forme de PDF ou d'image.

Merci.

Répondre

3

Nous vivons exactement le même problème tout en construisant des colaab, un système de collaboration Silverlight 2 disponible à l'adresse:

http://www.colaab.com

Les options semblent être:

  1. Créer un côté serveur processus pour ouvrir un navigateur Web et configurer la page correctement puis prendre une capture d'écran de celui-ci en utilisant un logiciel comme WebShot.

  2. Envoyez le Xaml de votre arborescence visuelle au serveur (il existe une classe pratique au SilverlightContrib pour obtenir le Xaml du modèle objet). Une fois que vous obtenez cela sur le côté serveur, utilisez la prise en charge intégrale des frameworks .NET WPF pour exporter ceci en tant que PNG. Ce n'est pas pris en charge côté serveur car WPF est une technologie client.

  3. Utilisez le pont HTML pour appeler la fonction d'impression des navigateurs

  4. Attendez Silverlight 3 - « une meilleure impression et RenderTargetBitmap (capture d'écran bitmap Alias) sont deux caractéristiques que nous planifions pour la prochaine version. »

Merci,

Bob

- Bob Thomson idées de tempête

http://www.colaab.com http://blog.stormideas.com twitter: movingforwards

0

Malheureusement, il n'existe pas de moyen simple de sauvegarder une image en format pdf ou image. Nous avons eu un problème similaire récemment et avons eu recours à un service qui a essentiellement créé un navigateur IE dans la mémoire hébergeant l'application Silverlight, puis la capture à partir de là. Est-ce que tout est un peu fiddly ... j'espérais quelque chose comme Canvas.ToImage();)

Désolé, il n'y a pas de meilleure réponse!

Je vais bientôt me renseigner sur la sérialisation.

+0

Merci Dave, j'espérais quelque chose simple bien. Faites-moi savoir ce que vous savez sur la sérialisation. – Austin

Questions connexes