将ASP.NET内容导出为图像

问题描述:

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

您可以在服务器端启动IE或其他浏览器,并使用GDI截取该窗口的屏幕截图,但是指出特定的div会花费更多的工作量。

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

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

也可能会有帮助。

+0

我觉得这个选项将工作最好的,但在做了一些与此应用程序,我意识到我需要更多的定制,并采取一个真正的截屏这样不最好的方式去。我已决定在GDI中绘制图像,而这虽然麻烦,但会为我的整体场景提供最佳的灵活性。感谢您的提示,但! – RubyHaus

好吧,如果你想利用网页的截图,并将其保存为图像格式(你想要什么都) 你可以做这样的....

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的命名空间 然后按OK按钮。
  • 在文件后面的.aspx代码中,您必须导入 System.Windows.Formsnamespace,就是这样。

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

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

我希望它会帮助你...