繁体   English   中英

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

[英]Convert a HTML Control (Div or Table) to an image using C#

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

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

这可能吗,有什么建议吗?

我们使用http://iecapt.sourceforge.net/将HTML转换为图像。 你可以尝试一下。 它是免费提供的

考虑一下名为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的唯一位。

您描述的控件的输出为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 - > PDF库都有这个功能,包括ABCPdf - http://www.websupergoo.com/abcpdf-1.htm

但问题的基本答案是ASP.NET控件不呈现为图像格式。 您将不得不对其上只有该控件(或HTML)的页面进行IE屏幕截图。

我自己没有尝试过,但是我一直想看看这些可能对你有帮助的是HTMLRenderer

您需要创建一个单独的页面,该页面将转换为图像并在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/

是。 可以使用html2canvas方法轻松完成。 html2canvas用于获取html元素的屏幕截图。 哟可以通过简单地将html div添加到html模式并将模态id传递给jquery函数并在按钮onclick中调用该jqueryy函数来实现。 您可以查看此链接以了解有关htm2canvas方法的更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM