Skip to content

hotrush/Webshotter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Latest Version Software License Total Downloads

Webshotter

Take website's screenshots with PHP/PhantomJS and save them to PNG, JPG or PDF.

Also you can take a look at simple microservice with lumen and this package - hotrush/Webshotter-microservice.

Changelog

0.1.6 - added waitForImages() and imagesLoadingTimeout

0.1.5 - custom $templatePath fixed, thanks to mizansyed

0.1.3 - added timeout property that allow to limit page load timeout (using onResourceTimeout phantomjs feature). If timeout reached TimeoutException will be thrown.

Installation

composer require hotrush/webshotter

Laravel installation

After installing package via composer add a service provider to your config/app.php

// app/config/app.php

'providers' => [
    ...,
    hotrush\Webshotter\WebshotServiceProvider::class
];

Usage

$webshot = new hotrush\Webshotter\Webshot();
$jpg = $webshot
    ->setUrl('https://github.com')
    ->setWidth(1200)
    ->setHeight(800)
    ->setTimeout(5) // set timeout in seconds, 30 seconds default
    ->setFullPage(true) // set to true to get full page screenshot (width/height will be used for viewport only)
    ->waitForImages() // wait when all images will load
    ->setImagesLoadingTimeout() // images loading timeout, will failt if not loaded
    ->saveToPng('github', $path);

You can use saveToJpg, saveToPng or saveToPdf methods. This methods requires 2 parameters: file name (without extension) and target directory to save file. They all returns full path to saved file

If you want to use you own PhantomJs executable - you can specify path to it via constructor.

new hotrush\Webshotter\Webshot('/path/to/phantomjs');

Example screenshot:

example

License

The MIT License (MIT). Please see License File for more information.