2010-04-03 4 views

ответ

1

Если вы не хотите использовать сторонний элемент управления, для этого вы можете использовать пространство имен System.Drawing.

  1. Создайте растровое изображение нужного размера. Лучше всего использовать 32bppargb, потому что именно это использует GDI +.
  2. Получить графический объект из растрового изображения с использованием Graphics.FromBitmap
  3. Draw на графическом объект с помощью graphics.DrawLine и т.д. (все методы задокументированы на графическом объекте)
  4. Создать MemoryStream и сохранить растровое изображение в MemoryStream, который вы затем можете использовать в своем программном обеспечении для записи в формате PDF или просто сохраните растровое изображение на диске (вам нужно будет предоставить разрешения ASP.NET для этого)

Не забывайте утилизировать графический объект, как только вы закончили с ним (лучше всего использовать блок)

Поскольку вы используете GDI + из веб-службы, вам может потребоваться использовать шаблон Singleton для сериализации запросов для рисования.

0

Посмотрите на эту веб-страницу здесь

Drawing Line Charts in ASP.Net

Тогда вместо запроса диаграммы из вашего Page_Load и вернуть его в потоке, вернуть его из одной из ваших функций веб-сервиса

Редактировать

Пошел прочь и подумал об этом, а затем погаснет лампочка - другой способ сделать это (а также удалить вас из кода 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

Этот пример опасен, поскольку графический объект расположен в деструктор. Его следует утилизировать как можно скорее. –

+0

Хорошее место. Не видел этого. – CResults

Смежные вопросы