使用C#将HTML控件(Div或Table)转换为图像

时间:2009-12-29 03:15:05

标签: c# asp.net html image

是否可以将Html控件转换为C#中的图像?

是否有任何C#方法可以传递Html控件对象并返回该html控件的图像?

这可能,有什么建议吗?

6 个答案:

答案 0 :(得分:14)

我们已使用http://iecapt.sourceforge.net/将HTML转换为图片。 你可以尝试一下。它适用于免费

答案 1 :(得分:5)

在名为htmlsnapshot的guangmingsoft上考虑这个(未经测试的!)库。

  

添加对htmlsnap2.dll的引用

有一个示例项目可供下载。

以下是他们的示例代码,直接从该链接中提取:

snap = new CHtmlSnapClass();
snap.Url("www.google.com", "*")
byte[] data = (byte[])snap.GetImageBytes(".jpg");
//byte[] data = (byte[])snap.GetThumbImageBytes(".jpg", 100, 100, 1);


FileStream fs = File.OpenWrite(@"c:\1.jpg");
BinaryWriter br = new BinaryWriter(fs);
br.Write(data);
br.Close();
fs.Close();

<强>更新 如果您只想要一个特定的控件,您可以自己编写一个页面,其作用是将目标控件重新呈现为页面上唯一的HTML。

答案 2 :(得分:2)

您所描述的控件的输出为HTML。就是这样。

您的问题是您希望将HTML片段转换为图像。渲染HTML由浏览器完成 - ASP.NET基本上与客户端呈现HTML的方式无关。

执行此任务的大多数.NET库(将HTML转换为图像)使用IE来为转换提供动力。其中一些实用程序包括:

  1. 网站截图 - http://www.websitesscreenshot.com/
  2. 上述htmlsnapshot - http://www.guangmingsoft.net/htmlsnapshot/help.htm
  3. 基本上任何HTML - &gt; PDF库具有此功能,包括ABCPdf - http://www.websupergoo.com/abcpdf-1.htm
  4. 但问题的基本答案是ASP.NET控件不呈现为图像格式。您将不得不对其上只有该控件(或HTML)的页面进行IE屏幕截图。

答案 3 :(得分:1)

我自己没有尝试过,但是我一直想要看一下可能对你有用的东西HTMLRenderer

答案 4 :(得分:0)

您需要创建一个单独的页面,将其转换为图像并在iframe中调用它。然后尝试以下:
http://articles.sitepoint.com/article/generating-asp-net-images-fly
OR
http://www.guangmingsoft.net/wordpress/convert-html-to-image-without-temporary-files-in-c/

答案 5 :(得分:0)

是的。使用html2canvas方法可以轻松完成此操作。 html2canvas用于拍摄html元素的屏幕截图。您可以通过简单地将html div添加到html模态并将模态ID传递给jquery函数并在onclick按钮中调用该jqueryy函数来实现。 you can checkout this link to know more about the htm2canvas method