2017 © Pedro PelĂĄez
 

library screen

A PHP Class to interact with PhantomJs and capture screenshot of a webpage

image

microweber/screen

A PHP Class to interact with PhantomJs and capture screenshot of a webpage

  • Thursday, March 30, 2017
  • by MASNathan
  • Repository
  • 46 Watchers
  • 479 Stars
  • 26,615 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 159 Forks
  • 18 Open issues
  • 10 Versions
  • 15 % Grown

The README.md

Screen

Web site screenshot tool based on PHP and PhantomJS You can use it to take screenshots for testing or monitoring service, (*1)

Install

Via Composer, (*2)

``` bash $ composer require microweber/screen, (*3)


If on any Unix system, you need to make the `bin` executable `chmod +x /path/to/screen/bin/phantomjs` The directory `/path/to/screen/jobs` must be writable as well. ## Linux requirements * FontConfig - `apt-get/yum install fontconfig` * FreeType - `apt-get/yum install freetype*` ## Usage With this library you can make use of PhantomJs to screenshot a website. Check our [demo](/demo) or read the following instructions. Creating the object, you can either pass the URL on the constructor or set it later on ``` php use Screen\Capture; $url = 'https://github.com'; $screenCapture = new Capture($url); // or $screenCapture = new Capture(); $screenCapture->setUrl($url);

You can also set the browser dimensions ``` php $screenCapture->setWidth(1200); $screenCapture->setHeight(800);, (*4)


you can set also DOM Element Position (top, left) ``` php $screenCapture->setTop(100); $screenCapture->setLeft(100);

This will output all the page including the content rendered beyond the setted dimensions (e.g.: all the scrollable content), if you want just the content inside those boudaries you need to clip the result ``` php // You also need to set the width and height. $screenCapture->setClipWidth(1200); $screenCapture->setClipHeight(800);, (*5)


Some webpages don't have a background color setted to the body, if you want you can set the color using this method ``` php $screenCapture->setBackgroundColor('#ffffff');

You can also set the User Agent ``` php $screenCapture->setUserAgentString('Some User Agent String');, (*6)


And the resulted image type ``` php // allowed types are 'jpg' and 'png', default is 'jpg'. $screenCapture->setImageType(Screen\Image\Types\Png::FORMAT); // or $screenCapture->setImageType('png');
  • If the format is jpg and the background color is not set, the default value will be #FFFFFF, if png the default background color will be transparent.

And most importantly, save the result ``` php $fileLocation = '/some/dir/test.' . $screen->getImageType()->getFormat(); $screenCapture->save($fileLocation);, (*7)

// you don't need to set the file extension $fileLocation = '/some/dir/test'; $screenCapture->save($fileLocation); // Will automatically determine the extension type, (*8)

echo $screenCapture->getImageLocation(); // --> /some/dir/test.png, (*9)


## Injection your own JS into the web page You can also run your own JS scripts or snippets before the screenshot. For that we have the method ```includeJs```, here are some usage examples: ``` php // Including a remote file $jQueryUrl = 'https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js'; $screenCapture->includeJs(new \Screen\Injection\Url($jQUeryUrl)); // Including a local file $localFilePath = 'path/to/my/script.js'; $screenCapture->includeJs(new \Screen\Injection\LocalPath($localFilePath)); // Using the scripts included on the library $screen->includeJs(new \Screen\Injection\Scripts\FacebookHideCookiesPolicy()); $screen->includeJs(new \Screen\Injection\Scripts\FacebookHideSignUp()); // Using a js snippet $screen->includeJs("console.log('This is supa cool!');");

Just use this method before calling save(...), (*10)

Passing options to PhantomJS

You can set the options that will be passed to the PhantomJS binary., (*11)

``` php $screenCapture->setOptions([ 'ignore-ssl-errors' => 'yes', // '--ignore-ssl-errors' => 'yes', // dashes may be omitted ]);, (*12)



## Other configurations Additionally to the basic usage, you can set so extra configurations. You can change the where the PhantomJS binary file is. ``` php $screenCapture->binPath = '/path/to/bin/dir/'; // This will result in /path/to/bin/dir/phantomjs

Change the jobs location ``` php $screenCapture->jobs->setLocation('/path/to/jobs/dir/'); echo $screenCapture->jobs->getLocation(); // -> /path/to/jobs/dir/, (*13)


And set an output base location ``` php $screenCapture->output->setLocation('/path/to/output/dir/'); echo $screenCapture->output->getLocation(); // -> /path/to/output/dir/ // if the output location is setted $screenCapture->save('file.jpg'); // will save the file to /path/to/output/dir/file.jpg

You can also clean/delete all the generated job files like this: php $screenCapture->jobs->clean();, (*14)

License

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

Credits

Thanks to the PhantomJS (LICENSE) guys for creating their awesome WebKit scripting interface., (*16)

This tool was originally created to take screenshots for Microweber, (*17)

The Versions

30/03 2017

v2.0.0.x-dev

2.0.0.9999999-dev

A PHP Class to interact with PhantomJs and capture screenshot of a webpage

  Sources   Download

MIT

The Requires

  • php >=5.5.9

 

The Development Requires

phantomjs screen capture print-screen

30/03 2017

dev-master

9999999-dev

A PHP Class to interact with PhantomJs and capture screenshot of a webpage

  Sources   Download

MIT

The Requires

  • php >=5.3

 

The Development Requires

phantomjs screen capture print-screen

20/01 2017

v1.0.6

1.0.6.0

A PHP Class to interact with PhantomJs and capture screenshot of a webpage

  Sources   Download

MIT

The Requires

  • php >=5.3

 

The Development Requires

phantomjs screen capture print-screen

22/12 2016

v1.0.5

1.0.5.0

A PHP Class to interact with PhantomJs and capture screenshot of a webpage

  Sources   Download

MIT

The Requires

  • php >=5.3

 

The Development Requires

phantomjs screen capture print-screen

22/12 2016

v1.0.4

1.0.4.0

A PHP Class to interact with PhantomJs and capture screenshot of a webpage

  Sources   Download

MIT

The Requires

  • php >=5.3

 

The Development Requires

phantomjs screen capture print-screen

13/10 2016

1.0.4

1.0.4.0

A PHP Class to interact with PhantomJs and capture screenshot of a webpage

  Sources   Download

MIT

The Requires

  • php >=5.3

 

The Development Requires

phantomjs screen capture print-screen

15/08 2016

1.0.3

1.0.3.0

A PHP Class to interact with PhantomJs and capture screenshot of a webpage

  Sources   Download

MIT

The Requires

  • php >=5.3

 

The Development Requires

phantomjs screen capture print-screen

28/07 2016

v1.0.2

1.0.2.0

A PHP Class to interact with PhantomJs and capture screenshot of a webpage

  Sources   Download

MIT

The Requires

  • php >=5.3

 

The Development Requires

phantomjs screen capture print-screen

07/04 2016

v1.0.1

1.0.1.0

A PHP Class to interact with PhantomJs and capture screenshot of a webpage

  Sources   Download

MIT

The Requires

  • php ~5.3

 

The Development Requires

phantomjs screen capture print-screen

25/01 2016

v1.0.0

1.0.0.0

A PHP Class to interact with PhantomJs an capture screenshot of a webpage

  Sources   Download

BSD

The Requires

  • php >=5.3

 

The Development Requires

phantomjs screen capture print-screen