这就是我所取得的成就:
在页面加载中
{
panelmain.Controls.Add(abc);
panelmain.Controls.Add(grid1);
string toexport;
toexport = RenderControl(panelmain);
ImageFormatConverter imgc = new ImageFormatConverter();
System.Drawing.Image convertedimage;
convertedimage = (System.Drawing.Image) imgc.ConvertFromString(toexport);
Response.ContentType = "image/jpg";
Response.AppendHeader("Content-Disposition", "inline;filename=tm.jpeg");
Response.BufferOutput = true;
Response.Charset = "utf-8";
Response.Write(convertedimage);
Response.End();
//form1.Controls.Add(abc);
}
public string RenderControl(Control ctrl)
{
StringBuilder sb = new StringBuilder();
StringWriter tw = new StringWriter(sb);
HtmlTextWriter hw = new HtmlTextWriter(tw);
ctrl.RenderControl(hw);
Response.Write(sb);
return sb.ToString();
}
错误是:
ImageFormatConverter 无法从 System.String 进行转换。
您可能误解了文档ConvertFromString
在这里,解释:
您正在使用ImageformatConverter继承和重写的类TypeConverter。这意味着ConvertFromString
是从超类继承的,但是因为你无法将字符串转换为图像(除非你有生动的想象力),所以这个方法总是返回 null (根据文档),或者抛出一个NotSupportedException
。这是基类的默认行为,重写类可以定义自定义行为,在您的情况下,尚未完成.
要从字符串转换,您首先必须定义您想要的内容。即,该字符串是图像的路径吗?它是一段文本并且您想从中渲染图像吗?它是包含图像的 Base64 编码字符串吗?它是呈现的 HTML 页面还是包含 RTF 文档?一旦找到这些问题的答案,您就可以选择正确的转换器或图像构造函数。
编辑:因为你的问题似乎是关于将 HTML 渲染为图像,请查看这篇文章在SO,正如也提到的rchern above.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)