Рендеринг изображения веб-страницы: Berkelium-Sharp
Я пытаюсь сделать изображение веб-страницы в приложении. К сожалению, у меня нет доступной формы Windows, поэтому такие решения, как WebKit.net, недоступны, так как им требуется элемент управления для формы для извлечения изображения.
Поэтому я начал смотреть на обертки для Berkelium, и наткнулся только на Berkelium-Sharp. Кажется, у него нет документации, чтобы усложнить задачу, но, глядя на код, я не вижу способа создать растровое изображение (или подобное) на странице, которая отображается ниже. Кто-нибудь знает, возможно ли это?
Я должен добавить, что мне нужно использовать.NET 2.0, прежде чем кто-либо начнет предлагать альтернативы, которые не будут работать (хотя я открыт для тех, кто работает!).
1 ответ
Поначалу это немного странно, но после того, как я отправил электронное письмо автору, мне удалось придумать следующее в берклиевой резкости. Размещать здесь на случай, если это будет полезно для всех остальных.
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 секунду.