Skip to content

Latest commit

 

History

History
56 lines (41 loc) · 2.33 KB

README.md

File metadata and controls

56 lines (41 loc) · 2.33 KB

Webshot screen server

Webshot Screen Server it's an web application for generate website screenshots. System is based on CutyCapt application (http://cutycapt.sourceforge.net). It's allows you to take screenshots of any web pages and save them as images in png formats. Application was created in PHP technology and uses Zend Framework whith Doctrine 2.

Required: xvfb-run and cutycapt applications.

Avaiable options: url,min-width,min-height,max-wait,delay,user-style-path,user-style-string,header,method,body-string,body-base64,app-name,app-version,user-agent,app,javascript,java,plugins,private-browsing,auto-load-images,js-can-open-windows,js-can-access-clipboard,print-backgrounds,zoom-factor,zoom-text-only,http-proxy.

##Installation using Composer

{
    "minimum-stability": "dev",
    "require": {
        "lciolecki/webshot": "dev-master"
    }
}

Important: For property install, please use: composer install -o

#Sample use in Zend Framework

public function webshotAction()
{
        $params = array(
          'url' => 'http://google.pl',
          'hash' => '2131sada', //unique identifcator of service
          'sign' => 'adad13123' //sign key for http://google.pl + 2131sada
        );
        
        $url = 'yourdomain/api/create';            
        $client = new Zend_Http_Client($url);
        $client->setMethod(Zend_Http_Client::POST)
               ->setHeaders('X-Requested-With', 'XMLHttpRequest') 
               ->setParameterPost($params)
               ->setConfig(array('timeout' => 180));
        
        $response = $client->request();
        
        $return = Zend_Json::decode($response->getBody());
        $code = isset($return['code']) ? $return['code'] : 200;
    
      if ($code === 200) {
          $this->_helper->viewRenderer->setNoRender(true);
          $this->_helper->layout->disableLayout();
          
          $content = file_get_contents($return['image']);
          $this->getResponse()->setHeader('Content-type', 'image/png');
          $this->getResponse()->setBody($content);
          $this->getResponse()->sendResponse();  
        } else {
          throw new Exception('An error on generate screenshot');
        }
    }