You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CefSharp WinForms v104如何正确保存整页截图?

CefSharp WinForms v104 整页网页截图的正确实现方式

你当前通过修改浏览器分辨率来实现整页截图的方式确实存在问题:不仅会导致浏览器界面尺寸临时变化影响体验,还依赖固定延迟等待页面调整,稳定性无法保障。

正确的做法是利用CefSharp集成的DevTools Page API,直接指定fullPage参数来捕获完整页面,无需修改浏览器实际显示尺寸。以下是完整实现代码:

int width = 1024; // 截图的宽度,可根据需求调整

// 获取DevTools客户端
var devToolsClient = chromeBrowser.GetDevToolsClient();

// 调用CaptureScreenshot API,开启fullPage模式
var screenshotParams = new CaptureScreenshotRequest
{
    Format = CaptureScreenshotFormat.Jpeg,
    Quality = 90, // 图片质量,范围0-100
    FullPage = true,
    Clip = new PageViewport
    {
        Width = width,
        Height = 1 // 开启FullPage时此高度会被忽略,仅需设置宽度
    }
};

var screenshotData = await devToolsClient.Page.CaptureScreenshotAsync(screenshotParams);

// 保存截图到文件
var filePath = @"D:\" + DateTime.Now.Ticks + ".jpg";
await File.WriteAllBytesAsync(filePath, screenshotData);

关键说明:

  • FullPage = true:这是实现整页截图的核心参数,DevTools会自动滚动页面并拼接完整内容,无需手动调整浏览器尺寸。
  • 无需Task.Delay:直接使用API的异步方法,避免依赖固定延迟等待,稳定性更高。
  • 参数灵活调整:可通过Format指定图片格式(Png/Jpeg/Webp),Quality调整Jpeg质量,Clip.Width设置截图宽度。

这种方式既不会影响浏览器的正常显示,也能稳定获取完整的网页截图,是CefSharp官方推荐的整页截图方案。

内容的提问来源于stack exchange,提问作者Elgin Maksim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 06:15:40