問題は、WebViewの作成中に幅と高さが設定されているため、ページが読み込まれた後に変更するオプションが表示されず、実際のサイズがわかったということです。あなたが受け取った後代わりに新しいのWebViewを作成する...どのようにページ全体のスクリーンショットを取得するにはawesomiumですか?
static bool finishedLoading;
static bool finishedScroll;
static ScrollData scrollData;
static void Main(string[] args)
{
WebCore.Initialize(new WebCoreConfig() { CustomCSS = "::-webkit-scrollbar { visibility: hidden; }" });
var webView1 = WebCore.CreateWebView(800, 600, false);
webView1.LoadURL("http://someurl");
webView1.LoadCompleted += OnFinishLoading;
while (!finishedLoading)
{
Thread.Sleep(100);
WebCore.Update();
}
webView1.RequestScrollData();
webView1.ScrollDataReceived += new ScrollDataReceivedEventHandler(ScrollDataReceived);
while (!finishedScroll)
{
Thread.Sleep(100);
WebCore.Update();
}
var webView2 = WebCore.CreateWebView(scrollData.ContentWidth, scrollData.ContentHeight, false);
finishedLoading = false;
webView2.LoadURL("http://someUrl");
webView2.LoadCompleted += OnFinishLoading;
while (!finishedLoading)
{
Thread.Sleep(100);
WebCore.Update();
}
webView2.Render().SaveToPNG("filePath");
WebCore.Shutdown();
}
static void ScrollDataReceived(object sender, ScrollDataEventArgs e)
{
finishedScroll = true;
scrollData = e.ScrollData;
}
static void OnFinishLoading(object sender, EventArgs e)
{
finishedLoading = true;
}
私はより良い方法があると思います
ありがとう、それは非常に便利でした!私はResharperが "サイズ"を入力するときにResharperが表示されないようにResizeメソッドを見逃しています:( – SiberianGuy
現在、私はWebKitを(QtやGtkのようなラッパーを使用して)WebページをPDFに変換しようとしています。 (PDFを正しくレンダリングすることができないようだが)PDFを作成するには、かなり良いと判明しているhttp://wkhtmltopdf.orgを参照してください。今、あなたの答えが記載されているように、Awesomiumとスクリーンショット機能をテストしていますそれで、awesomiumにPDF変換機能が組み込まれているのか、それとも自分で実装する必要があるのでしょうか?ありがとう! – swdev
チュートリアルへのリンクを更新できますか? –