hotrush / Webshotter by hotrush

Make screnshots of webpages with phantomjs
606
10
3
Package Data
Maintainer Username: hotrush
Maintainer Contact: johny64@gmail.com (rush)
Package Create Date: 2016-01-05
Package Last Update: 2017-12-27
Home Page: https://packagist.org/packages/hotrush/webshotter
Language: PHP
License: MIT
Last Refreshed: 2024-04-17 15:13:06
Package Statistics
Total Downloads: 606
Monthly Downloads: 1
Daily Downloads: 0
Total Stars: 10
Total Watchers: 3
Total Forks: 2
Total Open Issues: 2

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.