Exemplo n.º 1
0
 /**
  * Returns an instance.
  *
  * Singleton pattern implementation.
  *
  * @return Manager_ScreenCapture_Page
  */
 public static function getInstance()
 {
     if (null === self::$_instance) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
Exemplo n.º 2
0
 /**
  * Generate a review portal pdf.
  *
  * @param integer $portalId
  * @return string The pdf name
  */
 protected function _generatePdf($portalId)
 {
     $portal = new Object_ReviewPortal($portalId);
     if (!$portal->getId()) {
         return false;
     }
     // Get the screenshots of all the portal pages.
     $pages = Repo_ReviewPortalPage::getInstance()->getPortalPages($portalId);
     if (!$pages || $pages->count() == 0) {
         return false;
     }
     $pdf = new Zend_Pdf();
     $pageNumber = 1;
     $font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA);
     $fontSize = 10;
     foreach ($pages as $_p) {
         $_images = array();
         $_page = new Object_Page($_p->id);
         // Try get static screenshots if the setting is set.
         if ($_page->screenshot_type == Repo_Page::SCREENSHOT_TYPE_STATIC) {
             $_images = $_page->getStaticScreenshots(true);
         }
         // Get dynamic one.
         if (empty($_images)) {
             $_images[] = Manager_ScreenCapture_Page::getInstance()->getScreenshot($_p->id);
         }
         foreach ($_images as $_image) {
             $_pdfImage = Zend_Pdf_Image::imageWithPath($_image);
             $_pdfPage = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_LETTER_LANDSCAPE);
             $_pdfPage->drawImage($_pdfImage, 20, 36, $_pdfPage->getWidth() - 20, $_pdfPage->getHeight() - 20);
             $_pdfPage->setFont($font, 16);
             $_pdfPage->setFillColor(Zend_Pdf_Color_Html::color('#333333'))->drawText($pageNumber, $_pdfPage->getWidth() / 2, 10);
             $pageNumber++;
             $pdf->pages[] = $_pdfPage;
         }
     }
     $pdfName = $portalId . '_' . time() . '.pdf';
     $path = $this->_rootPath . DS . $pdfName;
     $pdf->save($path);
     return $pdfName;
 }