当前位置: 首页 > 编程语言 > C#

将ASP.NET MVC ViewResult HTML呈现为没有第三方组件的图像分享

时间:2023-04-10 19:49:14 C#

C#学习教程:在没有第三方组件的情况下将ASP.NETMVCViewResultHTML渲染为图像我试图将ViewResult作为字符串获取,我得到一个包含html的字符串,但我需要将该html呈现为图像。如果可能-使用样式和图像。我有一个想法,就是在服务器上为这个html获取一些浏览器输出,并将结果捕获到图像中,但是我现在不知道如何在实践中做到这一点。如果您有任何想法,请提供帮助。请不要建议任何第三方组件。只需判断标准.NET类是否无法完成即可。谢谢请参阅如何使用WebBrowser控件然后显示图像publicclassHtmlToBitmapConverter{privateconstintSleepTimeMiliseconds=5000;publicBitmapRender(stringhtml,Sizesize){varbrowser=CreateBrowser(size);browser.Navigate("关于:空白");浏览器.Document.Write(html);返回GetBitmapFromControl(浏览器,大小);}publicBitmapRender(Uriuri,Sizesize){varbrowser=CreateBrowser(size);NavigateAndWaitForLoad(浏览器,uri,0);返回GetBitmapFromControl(浏览器,大小);}publicvoidNavigateAndWaitForLoad(WebBrowser浏览器,Uriuri,intwaitTime){browser.Navigate(uri);变量计数=0;while(browser.ReadyState!=WebBrowserReadyState.Complete){Thread.Sleep(SleepTimeMiliseconds);应用程序.DoEvents();计数++;如果(计数>waitTime/SleepTimeMiliseconds){break;}}}privateWebBrowserCreateBrowser(Sizesize){returnnewWebBrowser{ScrollBarsEnabled=false,ScriptErrorsSuppressed=true,Size=size};}私有位图GetBitmapFromControl(WebBrowser浏览器,Size大小){varbitmap=newBitmap(size.Width,size.Height);NativeMethods.GetImage(浏览器.Document.DomDocument,位图,Color.White);返回位图;然后就是这么简单varimage=newHtmlToBitmapConverter().Render(newUri(urlTextBox.Text),pictureBox.Size);真的很抱歉我之前的建议,这是不对的。现在我明白你想要什么了。但是如果你不喜欢使用第三方解决方案的想法,那么唯一的办法就是编写自己的解析器,这不是一件容易的事。或者您可以尝试使用WebBrowser类及其方法DrawToBitmap如何在这里描述http://englestone.blogspot.com/2009/06/generate-screenshot-previews-with-c.html以上是C#学习教程:ASP。NETMVCViewResultHTML呈现为没有第三方组件的图像。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处: