如何在c#中将包含HTML的字符串呈现为图像
本文关键字:字符串 图像 HTML 包含 | 更新日期: 2023-09-27 18:02:29
我正在开发一个为用户提供交互式反馈工具的web应用程序。在此应用程序中,用户可以单击发送反馈按钮。该按钮在他们当前的网页上叠加,并允许他们拖动突出显示区域DIV
s来强调某些区域。一旦他们提交了反馈,整个页面的HTML将通过AJAX传递回服务器。
到达服务器后,我现在有一个包含页面HTML的字符串。从这里,我想运行这个字符串通过某种引擎,呈现HTML和构建图像。如果你愿意的话,这是一种粗略的截图方式。
一个人如何完成这样的事情?是否有用c#编写的引擎,可以构建HTML和渲染图像?
查看这个框架- http://awesomium.com/
这正是你所需要的。
设置基本URL,这将需要解析任何相对URL
WebCore.SetBaseDirectory("C:''MyApplication''MyBaseDirectory");
然后加载HTML -
myWebView.LoadHTML("<p>Hello World!</p>");
然后使用。render()方法,你将能够保存渲染的内容到一个图像。
如果你想使用Gecko,可以考虑使用LLMozLib。
在这里查看更多细节
有一个ActiveX控件在Windows上嵌入壁虎。
这里示例
我在一个Windows窗体应用程序上得到了它。
使用这些资源。
这对壁虎来说是一个很好的包装……
这是我的示例代码…
public partial class Form1 : Form
{
public Form1()
{
Xpcom.Initialize(@"C:'Users'esouza'Downloads'xulrunner"); //Tell where are XUL bin
InitializeComponent();
//geckoWebBrowser1 is an instance of GeckoWebBrowser control that I've dragged on the Form1
geckoWebBrowser1.DocumentCompleted += new EventHandler(geckoWebBrowser1_DocumentCompleted);
}
private void button1_Click(object sender, EventArgs e)
{
geckoWebBrowser1.Navigate("http://www.google.com");
}
void geckoWebBrowser1_DocumentCompleted(object sender, EventArgs e)
{
Bitmap b = new Bitmap(geckoWebBrowser1.Width, geckoWebBrowser1.Height);
geckoWebBrowser1.DrawToBitmap(b, new Rectangle { X = 0, Y = 0, Width = 800, Height = 600 });
b.Save("file.bmp");
}
}
非常有趣的问题,我没有银弹给你。
你肯定需要一些描述的浏览器引擎,然后捕捉渲染输出作为一个位图。
我从这个问题中看到有一个为WebKit开发的COM包装器。也许这是个好的开始