2010-04-03 95 views

回答

1

如果你不想使用第三方控件,那么你可以使用System.Drawing命名空间。

  1. 创建一个正确大小的位图。最好使用32bppargb,因为这是GDI +在内部使用的。
  2. 获得图形使用Graphics.FromBitmap位图
  3. 上的图形绘制对象使用graphics.DrawLine等反对(所有的方法都记录在图形对象)
  4. 创建一个MemoryStream和位图保存到MemoryStream然后你可以在你的PDF编写软件中使用,或者直接将位图保存到磁盘(你需要赋予ASP.NET的权限来执行此操作)

不要忘记尽快处置图形对象已经完成了它(使用块最好)

因为您使用的是Web服务中的GDI +,所以您可能需要考虑使用Singleton模式来连续执行绘制的请求。

0

看一看这个网页这里

Drawing Line Charts in ASP.Net

然后,而不是从你的Page_Load请求图表和数据流中恢复它,从你的web服务功能之一返回它

编辑

走开了,想到这个,然后灯泡熄灭 - 这样做的另一种方式(也从GDI +代码中删除你)将使用GoogleCharts api。

例如https://chart.apis.google.com/chart?cht=p3&chd=t:90,10&chs=250x100&chl=Overflow|Stack呈现以下

alt text

折线图

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

另外,如果您还没有排序生成PDF呢,看看iTextSharp的here

+1

该示例很危险,因为图形对象被放置在析构函数。应该尽快处理。 – 2010-04-03 08:45:06

+0

不错的地方。没有看到。 – CResults 2010-04-03 11:05:55