2010-04-03 9 views

Répondre

1

Si vous ne souhaitez pas utiliser un contrôle tiers, vous pouvez utiliser l'espace de noms System.Drawing pour cela.

  1. Créez une image bitmap de la bonne taille. Il est préférable d'utiliser 32bppargb car c'est ce que GDI + utilise en interne.
  2. Obtenir un objet graphique à partir du bitmap à l'aide Graphics.FromBitmap
  3. Dessiner sur l'objet graphique à l'aide graphics.DrawLine etc (toutes les méthodes sont documentées sur l'objet graphique)
  4. Créer une MemoryStream et enregistrez le bitmap au MemoryStream que vous pouvez ensuite utiliser dans votre logiciel d'écriture PDF, ou simplement enregistrer l'image sur disque (vous devrez donner des permissions ASP.NET pour cela)

N'oubliez pas de jeter l'objet graphique dès que vous avoir fini avec (un bloc utilisant est le meilleur)

Étant donné que vous utilisez GDI + à partir d'un service Web, vous pouvez envisager d'utiliser le modèle Singleton pour sérialiser les demandes de dessin.

0

Jetez un oeil à cette page ici

Drawing Line Charts in ASP.Net

Ensuite, au lieu de demander la carte de votre page_load et retour dans le flux, le retour de l'un de vos fonctions WebService

Modifier

Nous sommes allés là-bas et y avons réfléchi, puis une ampoule s'est éteinte - une autre façon de le faire (et aussi de vous retirer du code GDI +) serait d'utiliser l'API GoogleCharts.

Par exemple https://chart.apis.google.com/chart?cht=p3&chd=t:90,10&chs=250x100&chl=Overflow|Stack rend les suivantes

alt text

graphiques Ligne

http://code.google.com/apis/chart/docs/gallery/line_charts.html

De plus, si vous n'êtes pas encore classé génération de PDF, jetez un oeil à iTextSharp here

+1

Cet exemple est dangereux car l'objet graphique est disposé dans le destructeur. Il devrait être éliminé dès que possible. –

+0

Bon endroit. Je n'ai pas vu ça. – CResults

Questions connexes