cdp-html-shot
A high-performance Rust library for capturing HTML screenshots using the Chrome DevTools Protocol (CDP).
- Robust: Automatic cleanup of browser processes and temporary files (RAII).
- Fast: Asynchronous API built on
tokioand WebSockets. - Precise: Capture screenshots of specific DOM elements via CSS selectors.
- HiDPI Support: Control
deviceScaleFactorfor crystal-clear, high-resolution images. - Flexible: Full control over viewport, image format, quality, and more.
Installation
Add this to your Cargo.toml:
[]
= "0.2"
Examples
Quick Capture
Render HTML strings and capture specific elements instantly.
use Result;
use Engine;
use Browser;
async
HiDPI Screenshots
Capture high-resolution images using deviceScaleFactor (similar to Puppeteer's page.setViewport()).
use Result;
use Engine;
use ;
async
Advanced Tab Control
Manually manage tabs, viewport, navigation, and element selection for complex scenarios.
use Result;
use Engine;
use ;
async
Viewport Configuration
The Viewport struct provides full control over page dimensions and device emulation:
use Viewport;
// Simple viewport
let viewport = new;
// HiDPI viewport (2x sharper images)
let viewport = new
.with_device_scale_factor;
// Mobile emulation
let viewport = new
.with_device_scale_factor
.with_mobile
.with_touch;
// Using the builder pattern
let viewport = builder
.width
.height
.device_scale_factor
.is_mobile
.build;
Capture Options
Fine-tune screenshot output with CaptureOptions:
use ;
// PNG with transparency
let opts = new
.with_format
.with_omit_background;
// High-quality JPEG
let opts = new
.with_format
.with_quality;
// Convenience presets
let opts = raw_png;
let opts = high_quality_jpeg;
let opts = hidpi; // 2x scale
let opts = ultra_hidpi; // 3x scale