2011-07-19 52 views
4

我正在开发一个Web应用程序,它为用户提供了一个交互式反馈工具。在这个应用程序中,用户可以点击发送反馈按钮。该按钮在他们当前的网页上放置一个叠加层,并允许他们拖动高亮区DIV s来强调某些区域。一旦他们提交了反馈,整个页面的HTML就会通过AJAX传递回服务器。如何将包含HTML的字符串呈现为C#中的图像?

一旦在服务器上,我现在有一个字符串包含页面的HTML。从这里我想通过某种引擎呈现HTML并构建图像来运行此字符串。如果你愿意的话,可以采取一些关于截图的方法。

如何才能完成这样的事情?是否有可用C#编写的引擎,并且可以构建HTML并呈现图像?

+2

选项1,请参阅Dillie的答案在这里:http://stackoverflow.com/questions/334532/render-html-as-an-image –

+0

@DustinDavis是不是一个Web窗体控件?这是一个Web应用程序。 – Chev

+0

@Alex Ford,那个HTML字符串的CSS样式怎么样?你在考虑渲染纯粹的HTML吗? – Tocco

回答

2

退房这个框架 - http://awesomium.com/

这正是你所需要的。

设置基本URL,这将是需要解决任何相对URL

WebCore.SetBaseDirectory("C:\\MyApplication\\MyBaseDirectory"); 

然后加载HTML -

myWebView.LoadHTML("<p>Hello World!</p>"); 

然后使用.Render()方法,你会能够将渲染的内容保存到图像。

+0

这绝对是我正在寻找。 – Chev

+0

D:除了2900美元以外!当然......可悲的是,我们公司的产品价值超过了10万美元,但我知道他们不会以2900美元的价格出售,因为我想要的价格相对简单。 – Chev

+0

看起来,如果我想走便宜的路线,我将不得不坚持Google+的方式,并使用HTML 5中的“canvas”标记来绘制屏幕截图。然后只限制HTML 4浏览器的功能。 – Chev

0

非常有趣的问题,我没有得到你的银弹。

你肯定会需要一些描述的浏览器引擎,然后将呈现的输出捕获为位图。

我从this question看到有一个为WebKit开发的COM包装器。也许这是一个很好的起点。

2

如果你想搭乘壁虎,你可以考虑使用LLMozLib。
看到更多细节here

编辑

有一个ActiveX控件嵌入壁虎在Windows上。
Sample here

编辑

我得到它的工作在Windows窗体应用程序。
使用these resources
这是一个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"); 
    } 
} 
+0

哦,哦...他们也改变了WebKit ... – Tocco

相关问题