The Yii PhantomjsWebpageScreenshot extension that allows to generate screenshots of web pages on the fly. It uses the headless webkit PhantomJS as a capture-engine.
PhantomJS is a headless WebKit with JavaScript API. It has fast and native support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG.
- Yii Framework 1.1.14 or above
- Composer
$ composer require dotzero/yii-phantomjs-screenshot
'aliases' => array(
...
'vendor' => realpath(__DIR__ . '/../../vendor'),
),
'components' => array(
...
'screenshot' => array(
'class' => 'vendor.dotzero.yii-phantomjs-screenshot.EWebpageScreenshot',
//'phantomjs' => '/bin/phantomjs',
//'width' => 640,
//'height' => 480,
),
),
$screenshot = Yii::app()->screenshot;
$screenshot->width = 640;
$screenshot->height = 480;
$url = 'http://www.google.com';
$outfile = Yii::getPathOfAlias('application.runtime') . '/' . uniqid() . '.png';
$screenshot->capture($url, $outfile);
Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php