How to Take Browser Screenshots in Laravel?
Hello Artisan,
This tutorial will give you an example of laravel take screenshot. Here you will learn laravel take screenshot of website url. you can understand a concept of how to take website screenshot from url in laravel. we will help you to give an example of how to take a screenshot in laravel. Alright, let us dive into the details.
You can use this example with laravel 6, laravel 7, laravel 8, laravel 9, laravel 10 and laravel 11 versions.
We will use spatie/browsershot composer package for take a screenshot of website in laravel. we will use url(), setOption(), windowSize(), waitUntilNetworkIdle() and save() method to capture browser screenshot in laravel. so let's follow the below steps:
Step 1 : Install Laravel
first of all we need to get fresh Laravel version application using bellow command, So open your terminal OR command prompt and run bellow command:
composer create-project laravel/laravel example-app
Step 2: Install spatie/browsershot Package
here, we will install spatie/browsershot package for take a screenshot of url in laravel. so, let's run the bellow commands:
composer require spatie/browsershot
Next, we need to install puppeteer npm package, that used to capture screenshot. let's installed using the below command:
npm install puppeteer --global
Step 3: Create Route
In this is step we need to create one route for capture browser screenshot. let's add the below route on web.php file.
routes/web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\DemoController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('demo', [DemoController::class,'index']);
Step 4: Create Controller
in this step, we need to create DemoController with index()method.
Add the below code on controller file.
app/Http/Controllers/DemoController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Spatie\Browsershot\Browsershot;
class DemoController extends Controller
{
/**
* Write code on Method
*
* @return response()
*/
public function index(Request $request)
{
Browsershot::url('https://www.itsolutionstuff.com')
->setOption('landscape', true)
->windowSize(3840, 2160)
->waitUntilNetworkIdle()
->save('itsolutionstuff.jpg');
dd("Done");
}
}
Run Laravel App:
All the required steps have been done, now you have to type the given below command and hit enter to run the Laravel app:
php artisan serve
Now, Go to your web browser, type the given URL and view the app output:
http://localhost:8000/demo
Output:
I hope it can help you...
Hardik Savani
I'm a full-stack developer, entrepreneur and owner of ItSolutionstuff.com. I live in India and I love to write tutorials and tips that can help to other artisan. I am a big fan of PHP, Laravel, Angular, Vue, Node, Javascript, JQuery, Codeigniter and Bootstrap from the early stage. I believe in Hardworking and Consistency.
We are Recommending you
- How to Send an Email on Error Exceptions in Laravel 9?
- Laravel 9 Google Recaptcha V3 Example Tutorial
- How to Get Last Month Data in Laravel?
- How to Remove Composer Package in Laravel?
- How to Generate BarCode in Laravel?
- Laravel - How to generate RSS Feed using roumen/feed package?
- Laravel Image Resize & Upload with Intervention Image Example
- Laravel Login with Twitter OAuth Tutorial
- Laravel Login with Google Account Tutorial
- Laravel Facebook authentication using Socialite Package
- How to Generate Dynamic Sitemap in Laravel?
- Laravel Database Backup using Laravel Backup Package