Rev 2388 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/*** PHPExcel** Copyright (c) 2006 - 2013 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 - 2013 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 - 2013 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 orientationif (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();}// Override Page Orientationif (!is_null($this->getOrientation())) {$orientation = ($this->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT)? PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT: $this->getOrientation();}// Override Paper Sizeif (!is_null($this->getPaperSize())) {$printPaperSize = $this->getPaperSize();}if (isset(self::$_paperSizes[$printPaperSize])) {$paperSize = self::$_paperSizes[$printPaperSize];}$orientation = ($orientation == 'L') ? 'landscape' : 'portrait';// 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 filefwrite($fileHandle, $pdf->output());parent::restoreStateAfterSave($fileHandle);}}