【发布时间】:2010-12-30 16:09:37
【问题描述】:
是否可以在 C# 中将 Html 控件转换为图像?
是否有任何 C# 方法可以传递 Html Control 对象并返回该 html 控件的图像?
这可能吗,有什么建议吗?
【问题讨论】:
是否可以在 C# 中将 Html 控件转换为图像?
是否有任何 C# 方法可以传递 Html Control 对象并返回该 html 控件的图像?
这可能吗,有什么建议吗?
【问题讨论】:
考虑这个位于guangmingsoft 的名为 htmlsnapshot 的库(未经测试!)。
添加对 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 位。
【讨论】:
您所描述的控件具有 HTML 作为其输出。这就是它所做的一切。
您的问题是您想将 HTML 的 sn-p 转换为图像。渲染 HTML 由浏览器完成 - ASP.NET 基本上与客户端如何渲染 HTML 无关。
大多数完成这项工作(将 HTML 转换为图像)的 .NET 库都使用 IE 来支持转换。其中一些实用程序包括:
但这个问题的更基本答案是 ASP.NET 控件不会呈现为图像格式。您必须对仅具有该控件(或 HTML)的页面进行 IE 屏幕截图。
【讨论】:
我们使用http://iecapt.sourceforge.net/ 将 HTML 转换为图像。 你可以试试看。 免费。
【讨论】:
您需要创建一个单独的页面,将其转换为图像并在 iframe 中调用它。然后尝试关注:
http://articles.sitepoint.com/article/generating-asp-net-images-fly
或
http://www.guangmingsoft.net/wordpress/convert-html-to-image-without-temporary-files-in-c/
【讨论】:
我自己没有尝试过,但我一直想看看可能对你有帮助的东西是HTMLRenderer。
【讨论】:
是的。使用 html2canvas 方法可以轻松完成。 html2canvas 用于截取 html 元素的屏幕截图。你可以通过简单地将 html div 添加到 html 模态并将模态 ID 传递给 jquery 函数并在按钮 onclick 中调用该 jqueryy 函数来做到这一点。 you can checkout this link to know more about the htm2canvas method
【讨论】: