Blame view

src/lib/PHPExcel/Writer/PDF.php 3.27 KB
1ea3b987   Administrator   maby first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
  <?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     1.8.0, 2014-03-02

   */

  

  

  /**

   *  PHPExcel_Writer_PDF

   *

   *  @category    PHPExcel

   *  @package     PHPExcel_Writer_PDF

   *  @copyright   Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)

   */

  class PHPExcel_Writer_PDF

  {

  

      /**

       * The wrapper for the requested PDF rendering engine

       *

       * @var PHPExcel_Writer_PDF_Core

       */

      private $_renderer = NULL;

  

      /**

       *  Instantiate a new renderer of the configured type within this container class

       *

       *  @param  PHPExcel   $phpExcel         PHPExcel object

       *  @throws PHPExcel_Writer_Exception    when PDF library is not configured

       */

      public function __construct(PHPExcel $phpExcel)

      {

          $pdfLibraryName = PHPExcel_Settings::getPdfRendererName();

          if (is_null($pdfLibraryName)) {

              throw new PHPExcel_Writer_Exception("PDF Rendering library has not been defined.");

          }

  

          $pdfLibraryPath = PHPExcel_Settings::getPdfRendererPath();

          if (is_null($pdfLibraryName)) {

              throw new PHPExcel_Writer_Exception("PDF Rendering library path has not been defined.");

          }

          $includePath = str_replace('\\', '/', get_include_path());

          $rendererPath = str_replace('\\', '/', $pdfLibraryPath);

          if (strpos($rendererPath, $includePath) === false) {

              set_include_path(get_include_path() . PATH_SEPARATOR . $pdfLibraryPath);

          }

  

          $rendererName = 'PHPExcel_Writer_PDF_' . $pdfLibraryName;

          $this->_renderer = new $rendererName($phpExcel);

      }

  

  

      /**

       *  Magic method to handle direct calls to the configured PDF renderer wrapper class.

       *

       *  @param   string   $name        Renderer library method name

       *  @param   mixed[]  $arguments   Array of arguments to pass to the renderer method

       *  @return  mixed    Returned data from the PDF renderer wrapper method

       */

      public function __call($name, $arguments)

      {

          if ($this->_renderer === NULL) {

              throw new PHPExcel_Writer_Exception("PDF Rendering library has not been defined.");

          }

  

          return call_user_func_array(array($this->_renderer, $name), $arguments);

      }

  

  }