source: sourcecode/application/libraries/PHPExcel/Writer/PDF/mPDF.php @ 1

Last change on this file since 1 was 1, checked in by dungnv, 11 years ago
File size: 4.7 KB
Line 
1<?php
2/**
3 *  PHPExcel
4 *
5 *  Copyright (c) 2006 - 2014 PHPExcel
6 *
7 *  This library is free software; you can redistribute it and/or
8 *  modify it under the terms of the GNU Lesser General Public
9 *  License as published by the Free Software Foundation; either
10 *  version 2.1 of the License, or (at your option) any later version.
11 *
12 *  This library is distributed in the hope that it will be useful,
13 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
14 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 *  Lesser General Public License for more details.
16 *
17 *  You should have received a copy of the GNU Lesser General Public
18 *  License along with this library; if not, write to the Free Software
19 *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
20 *
21 *  @category    PHPExcel
22 *  @package     PHPExcel_Writer_PDF
23 *  @copyright   Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24 *  @license     http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL
25 *  @version     1.8.0, 2014-03-02
26 */
27
28
29/**  Require mPDF library */
30$pdfRendererClassFile = PHPExcel_Settings::getPdfRendererPath() . '/mpdf.php';
31if (file_exists($pdfRendererClassFile)) {
32    require_once $pdfRendererClassFile;
33} else {
34    throw new PHPExcel_Writer_Exception('Unable to load PDF Rendering library');
35}
36
37/**
38 *  PHPExcel_Writer_PDF_mPDF
39 *
40 *  @category    PHPExcel
41 *  @package     PHPExcel_Writer_PDF
42 *  @copyright   Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
43 */
44class PHPExcel_Writer_PDF_mPDF extends PHPExcel_Writer_PDF_Core implements PHPExcel_Writer_IWriter
45{
46    /**
47     *  Create a new PHPExcel_Writer_PDF
48     *
49     *  @param  PHPExcel  $phpExcel  PHPExcel object
50     */
51    public function __construct(PHPExcel $phpExcel)
52    {
53        parent::__construct($phpExcel);
54    }
55
56    /**
57     *  Save PHPExcel to file
58     *
59     *  @param     string     $pFilename   Name of the file to save as
60     *  @throws    PHPExcel_Writer_Exception
61     */
62    public function save($pFilename = NULL)
63    {
64        $fileHandle = parent::prepareForSave($pFilename);
65
66        //  Default PDF paper size
67        $paperSize = 'LETTER';    //    Letter    (8.5 in. by 11 in.)
68
69        //  Check for paper size and page orientation
70        if (is_null($this->getSheetIndex())) {
71            $orientation = ($this->_phpExcel->getSheet(0)->getPageSetup()->getOrientation()
72                == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE)
73                    ? 'L'
74                    : 'P';
75            $printPaperSize = $this->_phpExcel->getSheet(0)->getPageSetup()->getPaperSize();
76            $printMargins = $this->_phpExcel->getSheet(0)->getPageMargins();
77        } else {
78            $orientation = ($this->_phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation()
79                == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE)
80                    ? 'L'
81                    : 'P';
82            $printPaperSize = $this->_phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize();
83            $printMargins = $this->_phpExcel->getSheet($this->getSheetIndex())->getPageMargins();
84        }
85        $this->setOrientation($orientation);
86
87        //  Override Page Orientation
88        if (!is_null($this->getOrientation())) {
89            $orientation = ($this->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT)
90                ? PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT
91                : $this->getOrientation();
92        }
93        $orientation = strtoupper($orientation);
94
95        //  Override Paper Size
96        if (!is_null($this->getPaperSize())) {
97            $printPaperSize = $this->getPaperSize();
98        }
99
100        if (isset(self::$_paperSizes[$printPaperSize])) {
101            $paperSize = self::$_paperSizes[$printPaperSize];
102        }
103
104        //  Create PDF
105        $pdf = new mpdf();
106        $ortmp = $orientation;
107        $pdf->_setPageSize(strtoupper($paperSize), $ortmp);
108        $pdf->DefOrientation = $orientation;
109        $pdf->AddPage($orientation);
110
111        //  Document info
112        $pdf->SetTitle($this->_phpExcel->getProperties()->getTitle());
113        $pdf->SetAuthor($this->_phpExcel->getProperties()->getCreator());
114        $pdf->SetSubject($this->_phpExcel->getProperties()->getSubject());
115        $pdf->SetKeywords($this->_phpExcel->getProperties()->getKeywords());
116        $pdf->SetCreator($this->_phpExcel->getProperties()->getCreator());
117
118        $pdf->WriteHTML(
119            $this->generateHTMLHeader(FALSE) .
120            $this->generateSheetData() .
121            $this->generateHTMLFooter()
122        );
123
124        //  Write to file
125        fwrite($fileHandle, $pdf->Output('', 'S'));
126
127                parent::restoreStateAfterSave($fileHandle);
128    }
129
130}
Note: See TracBrowser for help on using the repository browser.