spatie/laravel-screenshot
Driver-based Laravel package for taking web page screenshots with great defaults. Use Browsershot (Chromium) or Cloudflare Browser Rendering, customize viewport/format/quality, save to files, and easily fake/assert screenshots in tests.
This package supports multiple screenshot drivers. You can set the default driver via the LARAVEL_SCREENSHOT_DRIVER environment variable:
LARAVEL_SCREENSHOT_DRIVER=browsershot
Or in the config file:
// config/laravel-screenshot.php
return [
'driver' => 'browsershot', // or 'cloudflare'
// ...
];
You can switch drivers for a specific screenshot using the driver() method:
use Spatie\LaravelScreenshot\Facades\Screenshot;
Screenshot::url('https://example.com')
->driver('cloudflare')
->save('screenshot.png');
You can also pass a driver instance directly:
use Spatie\LaravelScreenshot\Drivers\BrowsershotDriver;
use Spatie\LaravelScreenshot\Facades\Screenshot;
$driver = new BrowsershotDriver([
'chrome_path' => '/usr/bin/google-chrome',
]);
Screenshot::url('https://example.com')
->setDriver($driver)
->save('screenshot.png');
How can I help you explore Laravel packages today?