Go to most recent revision | 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 tcPDF library */$pdfRendererClassFile = PHPExcel_Settings::getPdfRendererPath() . '/tcpdf.php';if (file_exists($pdfRendererClassFile)) {$k_path_url = PHPExcel_Settings::getPdfRendererPath();require_once $pdfRendererClassFile;} else {throw new PHPExcel_Writer_Exception('Unable to load PDF Rendering library');}/*** PHPExcel_Writer_PDF_tcPDF** @category PHPExcel* @package PHPExcel_Writer_PDF* @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel)*/class PHPExcel_Writer_PDF_tcPDF 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_LANDSCAPE)? 'L': 'P';}// Override Paper Sizeif (!is_null($this->getPaperSize())) {$printPaperSize = $this->getPaperSize();}if (isset(self::$_paperSizes[$printPaperSize])) {$paperSize = self::$_paperSizes[$printPaperSize];}// Create PDF$pdf = new TCPDF($orientation, 'pt', $paperSize);$pdf->setFontSubsetting(FALSE);// Set margins, converting inches to points (using 72 dpi)$pdf->SetMargins($printMargins->getLeft() * 72, $printMargins->getTop() * 72, $printMargins->getRight() * 72);$pdf->SetAutoPageBreak(TRUE, $printMargins->getBottom() * 72);$pdf->setPrintHeader(FALSE);$pdf->setPrintFooter(FALSE);$pdf->AddPage();// Set the appropriate font$pdf->SetFont($this->getFont());$pdf->writeHTML($this->generateHTMLHeader(FALSE) .$this->generateSheetData() .$this->generateHTMLFooter());// Document info$pdf->SetTitle($this->_phpExcel->getProperties()->getTitle());$pdf->SetAuthor($this->_phpExcel->getProperties()->getCreator());$pdf->SetSubject($this->_phpExcel->getProperties()->getSubject());$pdf->SetKeywords($this->_phpExcel->getProperties()->getKeywords());$pdf->SetCreator($this->_phpExcel->getProperties()->getCreator());// Write to filefwrite($fileHandle, $pdf->output($pFilename, 'S'));parent::restoreStateAfterSave($fileHandle);}}