Экспорт содержимого ASP.NET в изображение - PullRequest
1 голос
/ 07 ноября 2011

Кто-нибудь знает какие-либо инструменты, где вы можете взять содержимое элемента управления HTML (предположительно div) и экспортировать его в один из нескольких различных графических форматов (достаточно jpg, png и bmp)? Я бы предпочел, чтобы рендеринг выполнялся на стороне сервера (с GDI все в порядке), и просто создаю изображение, которое я могу вернуть с HttpHandler, чтобы его не нужно было сохранять, если это вообще возможно. Я знаю, что ряд инструментов отчетности (SSRS, Telerik Reporting) предлагают варианты экспорта в изображения, но я не могу понять, как они это делают.

Ответы [ 2 ]

2 голосов
/ 07 ноября 2011

Вы можете раскрутить IE или другой браузер на стороне сервера и использовать GDI, чтобы сделать снимок экрана с этим окном, но для определения конкретного div потребуется больше работы.

Если вам нужны скриншоты на стороне клиента, вам нужно использовать Java или что-то подобное.

Как сделать снимок экрана div с веб-страницы, используя C # и ASP.NET?

также может помочь.

0 голосов
/ 08 ноября 2011

Ну, если вы хотите сделать снимок экрана с веб-страницей и сохранить его в формате изображения (что бы вы ни захотели), вы можете сделать это следующим образом ...

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
using System.Web.Services;
using System.Text;
using System.Windows.Forms;//must be included for capturing screenshot

public partial class capture_webpage_screenshot : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnSave_Click(object sender, EventArgs e)
    {
        Bitmap bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
        Graphics graphics = Graphics.FromImage(bitmap as System.Drawing.Image);
        graphics.CopyFromScreen(25, 25, 25, 25, bitmap.Size);
        bitmap.Save(@"c:\screenshot\myscreenshot.bmp", ImageFormat.Bmp);

    }
}

, и вам нужновыполните следующие действия:

Просто выполните следующие действия.

  • Щелкните правой кнопкой мыши имя проекта
  • Добавьте ссылку -> вкладку .net и выберите системуПространство имен .windows.forms, затем нажмите кнопку ОК.
  • В коде .aspx позади файла вы должны импортировать пространство имен System.Windows.Forms и все.

Путем настройки параметров, используемых вФункция CopyFromScreen () позволяет выяснить, как захватить небольшую часть экрана, если это необходимо.

Создайте папку и укажите путь к папке в коде c #, как я уже описал выше.Вы также можете настроить код и давать динамическое имя растрового файла каждый раз, когда он генерируется.

Надеюсь, это поможет вам ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...