Blame view

dompdf/src/CanvasFactory.php 1.45 KB
670b6d6f8   tuan   2016/09/22 - Copy...
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
  <?php
  /**
   * @package dompdf
   * @link    http://dompdf.github.com/
   * @author  Benj Carson <benjcarson@digitaljunkies.ca>
   * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
   */
  namespace Dompdf;
  
  /**
   * Create canvas instances
   *
   * The canvas factory creates canvas instances based on the
   * availability of rendering backends and config options.
   *
   * @package dompdf
   */
  class CanvasFactory
  {
      /**
       * Constructor is private: this is a static class
       */
      private function __construct()
      {
      }
  
      /**
       * @param Dompdf $dompdf
       * @param string|array $paper
       * @param string $orientation
       * @param string $class
       *
       * @return Canvas
       */
      static function get_instance(Dompdf $dompdf, $paper = null, $orientation = null, $class = null)
      {
          $backend = strtolower($dompdf->get_option('pdf_backend'));
  
          if (isset($class) && class_exists($class, false)) {
              $class .= "_Adapter";
          } else {
              if (($backend === "auto" || $backend === "pdflib") &&
                  class_exists("PDFLib", false)
              ) {
                  $class = "Dompdf\\Adapter\\PDFLib";
              } else {
                  if ($backend === "gd") {
                      $class = "Dompdf\\Adapter\\GD";
                  } else {
                      $class = "Dompdf\\Adapter\\CPDF";
                  }
              }
          }
  
          return new $class($paper, $orientation, $dompdf);
      }
  }