【发布时间】:2011-12-23 17:43:01
【问题描述】:
有谁知道任何工具,您可以在其中获取 HTML 控件的内容(可能是 div)并将其导出为几种不同图像格式之一(jpg、png 和 bmp 就足够了)?我更喜欢在服务器端完成渲染(GDI 很好),只创建一个我可以用 HttpHandler 返回的图像,所以如果可能的话,它不需要保存。我知道许多报告工具(SSRS、Telerik Reporting)提供导出到图像的选项,但我不知道他们是如何做到的。
【问题讨论】:
有谁知道任何工具,您可以在其中获取 HTML 控件的内容(可能是 div)并将其导出为几种不同图像格式之一(jpg、png 和 bmp 就足够了)?我更喜欢在服务器端完成渲染(GDI 很好),只创建一个我可以用 HttpHandler 返回的图像,所以如果可能的话,它不需要保存。我知道许多报告工具(SSRS、Telerik Reporting)提供导出到图像的选项,但我不知道他们是如何做到的。
【问题讨论】:
您可以在服务器端启动 IE 或其他浏览器并使用 GDI 截取该窗口的屏幕截图,但精确定位特定 div 需要更多工作。
如果您需要客户端屏幕截图,则需要使用 Java 或类似的东西。
How to take screenshot of div from a webpage using C# and ASP.NET?
也可能有帮助。
【讨论】:
好吧,如果你想截取网页并保存它是图像格式(你想要什么) 你可以这样做....
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);
}
}
您必须按照以下步骤操作:
您只需执行以下步骤。
通过自定义 CopyFromScreen() 函数中使用的参数,您可以了解如何在需要时捕获屏幕的一小部分。
创建一个文件夹并在 C# 代码中给出文件夹路径,就像我上面给出的一样。您也可以自定义代码,并在每次生成位图文件时给出它的动态名称。
希望对你有帮助……
【讨论】: