我正在开发一个Web应用程序,它为用户提供了一个交互式反馈工具。在此应用程序中,用户可以单击发送反馈按钮。该按钮在其当前网页上设置了一个叠加层,并允许它们拖动突出显示区域DIV
以强调某些区域。一旦他们提交了反馈,整个页面的HTML就会通过AJAX传回服务器。
一旦进入服务器,我现在有一个包含页面HTML的字符串。从这里我想通过某种引擎来运行这个字符串,该引擎呈现HTML并构建一个图像。如果你愿意的话,可以采取截屏方式。
如何才能实现这样的目标?是否有可用C#编写的引擎,可以构建HTML并呈现图像?
答案 0 :(得分:2)
如果你想去Gecko,可以考虑使用LLMozLib 查看更多详情here
修改
有一个ActiveX控件可以在Windows上嵌入Gecko Sample here
修改
我使用Windows Forms应用程序
使用these resources。
它是Gecko的csharp包装......
那是我的示例代码......
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");
}
}
答案 1 :(得分:2)
查看此框架 - http://awesomium.com/
这正是您所需要的。
设置基本网址,这将需要解决任何相对网址
WebCore.SetBaseDirectory("C:\\MyApplication\\MyBaseDirectory");
然后加载HTML -
myWebView.LoadHTML("<p>Hello World!</p>");
然后使用.Render()方法,您将能够将渲染的内容保存到图像中。
答案 2 :(得分:0)