How to Take Screenshots in Laravel 9 Example

Hello Artisan,

In this tutorial, I will show you how to make a screenshot in laravel application. For taking screenshots, I will use spatie/browsershot package. If you are looking for the screenshot-taking tutorial in Laravel, then you are in the right place.

I will show you step by step guide on how to make a screenshot in laravel. Browser shot is software by the Spatie team that converts a webpage into an image or PDF by utilizing a headless instance of Chrome.

See the preview:



Step 1 : Install Laravel

I am going to start from scratch. So download a fresh Laravel project using the below command:

composer create-project laravel/laravel example-app


Step 2: Install Browsershot

The installation is pretty straightforward. Go to your Laravel root directory and enter the following command:

composer require spatie/browsershot


There is one more software we need that is called Puppeteer:

npm install puppeteer --global


Step 3: Create Route

In this step, we will create the route. Update the below file like that:


use App\Http\Controllers\BrowsershotController;

Route::get('/test-screenshot', [BrowsershotController::class, 'screenshotGoogle']);



Step 4: Create Controller

To use Browsershot, we first need to create a controller. Create a controller and update it like this:


namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Spatie\Browsershot\Browsershot;

class BrowsershotController extends Controller
    public function screenshotGoogle() {

            ->setOption('landscape', true)
            ->windowSize(3840, 2160)
            ->save("storage/" . 'codecheef.jpg');


Facebook Github
A web enthusiastic, a self-motivated full-stack software engineer from Dhaka, Bangladesh with experience in developing applications using Laravel , React and Vue js