将ASP.NET内容导出到图像

时间:2011-11-07 15:43:38

标签: asp.net image export

有没有人知道你可以获取HTML控件(preuambly div)的内容并将其导出为几种不同图像格式之一的任何工具(jpg,png和bmp就足够了)?我更喜欢渲染在服务器端完成(GDI很好)并且只是创建一个我可以使用HttpHandler返回的图像,因此如果可能的话它不需要保存。我知道许多报告工具(SSRS,Telerik Reporting)提供导出到图像选项,但我无法弄清楚他们是如何做到的。

2 个答案:

答案 0 :(得分:2)

您可以在服务器端启动IE或其他浏览器并使用GDI截取该窗口的屏幕截图,但精确定位特定div将需要更多工作。

如果您需要客户端屏幕截图,则需要使用Java或类似的东西。

How to take screenshot of div from a webpage using C# and ASP.NET?

也可以提供帮助。

答案 1 :(得分:0)

好吧,如果你想截取网页的截图并保存它是一种图像格式(你想要什么) 你可以这样做....

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选项卡,然后选择system.windows.forms 命名空间然后按确定按钮。
  • 在.aspx代码后面的文件中你必须导入 System.Windows.Formsnamespace就是这样。

通过自定义CopyFromScreen()函数中使用的参数,您可以了解如何捕获屏幕的一小部分(如果需要)。

创建一个文件夹并在c#代码中给出文件夹路径,就像我给出的一样。您也可以自定义代码,并在每次生成时提供位图文件的动态名称。

我希望它会帮助你...