| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 | <?php/**  Require mPDF library */$pdfRendererClassFile = PHPExcel_Settings::getPdfRendererPath() . '/mpdf.php';if (file_exists($pdfRendererClassFile)) {    require_once $pdfRendererClassFile;} else {    throw new PHPExcel_Writer_Exception('Unable to load PDF Rendering library');}/** *  PHPExcel_Writer_PDF_mPDF * *  Copyright (c) 2006 - 2015 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 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) *  @license     http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL *  @version     ##VERSION##, ##DATE## */class PHPExcel_Writer_PDF_mPDF 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();        }        $this->setOrientation($orientation);        //  Override Page Orientation        if (!is_null($this->getOrientation())) {            $orientation = ($this->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT)                ? PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT                : $this->getOrientation();        }        $orientation = strtoupper($orientation);        //  Override Paper Size        if (!is_null($this->getPaperSize())) {            $printPaperSize = $this->getPaperSize();        }        if (isset(self::$paperSizes[$printPaperSize])) {            $paperSize = self::$paperSizes[$printPaperSize];        }        //  Create PDF        $pdf = new mpdf();        $ortmp = $orientation;        $pdf->_setPageSize(strtoupper($paperSize), $ortmp);        $pdf->DefOrientation = $orientation;        $pdf->AddPage($orientation);        //  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());        $pdf->WriteHTML(            $this->generateHTMLHeader(false) .            $this->generateSheetData() .            $this->generateHTMLFooter()        );        //  Write to file        fwrite($fileHandle, $pdf->Output('', 'S'));        parent::restoreStateAfterSave($fileHandle);    }}
 |