渲染网页图片:berkelium-sharp

时间:2012-06-19 08:15:09

标签: c# winforms berkelium

我正在尝试在应用程序中呈现网页的图片。不幸的是,我没有可用的Windows窗体,因此WebKit.net等解决方案无法使用,因为它们需要对窗体进行控制才能提取图像。

因此,我开始研究Berkelium的包装纸,并且只遇到了berkelium-sharp。似乎没有文档可以让事情变得困难,但是看看代码我看不到从下面呈现的页面创建Bitmap(或类似)的方法。有谁知道这是否可能?

我应该补充说,在任何人开始提供不起作用的替代方案之前我必须使用.NET 2.0(虽然我对那些做的人开放!)。

1 个答案:

答案 0 :(得分:2)

最初使用它有点古怪,但在通过电子邮件发送给作者后,我设法在berkelium-sharp中提出了以下内容。在这里发布,以防它对其他任何人都有用。

    static void Main(string[] args)
    {                        
        BerkeliumSharp.Init(Path.GetTempPath());
        using (Context context = Context.Create())
        {
            BerkeliumSharp.Update();
            using (Window window = new Window(context))
            {
                string url = "http://www.google.com";
                window.Resize(500, 500);
                HandlePaint(window, @"m:\berkelium.png");
                window.NavigateTo(url);

                // Give the page some time to update
                DateTime now = DateTime.Now;
                while(DateTime.Now.Subtract(now).TotalSeconds < 1)
                    BerkeliumSharp.Update();                   
            }
        }
    }

然后使用HandlePaint方法包含在自动测试的源代码中。我还应该补充一点,在测试中有一种方便的技术,可以等到页面加载后删除硬编码的1秒延迟。