如何在c#中将包含HTML的字符串呈现为图像

本文关键字:字符串 图像 HTML 包含 | 更新日期: 2023-09-27 18:02:29

我正在开发一个为用户提供交互式反馈工具的web应用程序。在此应用程序中,用户可以单击发送反馈按钮。该按钮在他们当前的网页上叠加,并允许他们拖动突出显示区域DIV s来强调某些区域。一旦他们提交了反馈,整个页面的HTML将通过AJAX传递回服务器。

到达服务器后,我现在有一个包含页面HTML的字符串。从这里,我想运行这个字符串通过某种引擎,呈现HTML和构建图像。如果你愿意的话,这是一种粗略的截图方式。

一个人如何完成这样的事情?是否有用c#编写的引擎,可以构建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包装器。也许这是个好的开始