icingaweb2/library/IcingaVendor/dompdf/include/canvas_factory.cls.php

60 lines
1.5 KiB
PHP
Raw Normal View History

<?php
/**
* @package dompdf
* @link http://www.dompdf.com/
* @author Benj Carson <benjcarson@digitaljunkies.ca>
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
* @version $Id: canvas_factory.cls.php 448 2011-11-13 13:00:03Z fabien.menager $
*/
/**
* Create canvas instances
*
* The canvas factory creates canvas instances based on the
* availability of rendering backends and config options.
*
* @package dompdf
*/
class Canvas_Factory {
/**
* Constructor is private: this is a static class
*/
private function __construct() { }
/**
* @param string|array $paper
* @param string $orientation
* @param string $class
*
* @return Canvas
*/
static function get_instance($paper = null, $orientation = null, $class = null) {
$backend = strtolower(DOMPDF_PDF_BACKEND);
if ( isset($class) && class_exists($class, false) )
$class .= "_Adapter";
else if ( (DOMPDF_PDF_BACKEND === "auto" || $backend === "pdflib" ) &&
class_exists("PDFLib", false) )
$class = "PDFLib_Adapter";
// FIXME The TCPDF adapter is not ready yet
//else if ( (DOMPDF_PDF_BACKEND === "auto" || $backend === "cpdf") )
// $class = "CPDF_Adapter";
else if ( $backend === "tcpdf")
$class = "TCPDF_Adapter";
else if ( $backend === "gd" )
$class = "GD_Adapter";
else
$class = "CPDF_Adapter";
return new $class($paper, $orientation);
}
}