You are here

DomPDF.php in Loft Data Grids 6.2

Same filename and directory in other branches
  1. 7.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/DomPDF.php

File

vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/DomPDF.php
View source
<?php

/**
 *  PHPExcel
 *
 *  Copyright (c) 2006 - 2014 PHPExcel
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Lesser General Public
 *  License as published by the Free Software Foundation; either
 *  version 2.1 of the License, or (at your option) any later version.
 *
 *  This library is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this library; if not, write to the Free Software
 *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 *
 *  @category    PHPExcel
 *  @package     PHPExcel_Writer_PDF
 *  @copyright   Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
 *  @license     http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL
 *  @version     ##VERSION##, ##DATE##
 */

/**  Require DomPDF library */
$pdfRendererClassFile = PHPExcel_Settings::getPdfRendererPath() . '/dompdf_config.inc.php';
if (file_exists($pdfRendererClassFile)) {
  require_once $pdfRendererClassFile;
}
else {
  throw new PHPExcel_Writer_Exception('Unable to load PDF Rendering library');
}

/**
 *  PHPExcel_Writer_PDF_DomPDF
 *
 *  @category    PHPExcel
 *  @package     PHPExcel_Writer_PDF
 *  @copyright   Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
 */
class PHPExcel_Writer_PDF_DomPDF extends PHPExcel_Writer_PDF_Core implements PHPExcel_Writer_IWriter {

  /**
   *  Create a new PHPExcel_Writer_PDF
   *
   *  @param   PHPExcel    $phpExcel    PHPExcel object
   */
  public function __construct(PHPExcel $phpExcel) {
    parent::__construct($phpExcel);
  }

  /**
   *  Save PHPExcel to file
   *
   *  @param   string     $pFilename   Name of the file to save as
   *  @throws  PHPExcel_Writer_Exception
   */
  public function save($pFilename = NULL) {
    $fileHandle = parent::prepareForSave($pFilename);

    //  Default PDF paper size
    $paperSize = 'LETTER';

    //    Letter    (8.5 in. by 11 in.)
    //  Check for paper size and page orientation
    if (is_null($this
      ->getSheetIndex())) {
      $orientation = $this->_phpExcel
        ->getSheet(0)
        ->getPageSetup()
        ->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE ? 'L' : 'P';
      $printPaperSize = $this->_phpExcel
        ->getSheet(0)
        ->getPageSetup()
        ->getPaperSize();
      $printMargins = $this->_phpExcel
        ->getSheet(0)
        ->getPageMargins();
    }
    else {
      $orientation = $this->_phpExcel
        ->getSheet($this
        ->getSheetIndex())
        ->getPageSetup()
        ->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE ? 'L' : 'P';
      $printPaperSize = $this->_phpExcel
        ->getSheet($this
        ->getSheetIndex())
        ->getPageSetup()
        ->getPaperSize();
      $printMargins = $this->_phpExcel
        ->getSheet($this
        ->getSheetIndex())
        ->getPageMargins();
    }
    $orientation = $orientation == 'L' ? 'landscape' : 'portrait';

    //  Override Page Orientation
    if (!is_null($this
      ->getOrientation())) {
      $orientation = $this
        ->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT ? PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT : $this
        ->getOrientation();
    }

    //  Override Paper Size
    if (!is_null($this
      ->getPaperSize())) {
      $printPaperSize = $this
        ->getPaperSize();
    }
    if (isset(self::$_paperSizes[$printPaperSize])) {
      $paperSize = self::$_paperSizes[$printPaperSize];
    }

    //  Create PDF
    $pdf = new DOMPDF();
    $pdf
      ->set_paper(strtolower($paperSize), $orientation);
    $pdf
      ->load_html($this
      ->generateHTMLHeader(FALSE) . $this
      ->generateSheetData() . $this
      ->generateHTMLFooter());
    $pdf
      ->render();

    //  Write to file
    fwrite($fileHandle, $pdf
      ->output());
    parent::restoreStateAfterSave($fileHandle);
  }

}

Classes

Namesort descending Description
PHPExcel_Writer_PDF_DomPDF PHPExcel_Writer_PDF_DomPDF