Source for file jResponseTcpdf.class.php

Documentation is available at jResponseTcpdf.class.php

  1. <?php
  2. /**
  3. @package     jelix
  4. @subpackage  core_response
  5. @author      Julien Issler
  6. @contributor Uriel Corfa, Laurent Jouannneau
  7. @copyright   2007 Julien Issler, 2007 Emotic SARL, 2007 Laurent Jouanneau
  8. @link        http://www.jelix.org
  9. @licence     GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html
  10. @since 1.0
  11. */
  12.  
  13. /**
  14.  *
  15.  */
  16. require_once (JELIX_LIB_UTILS_PATH.'jTcpdf.class.php');
  17.  
  18. /**
  19. * PDF Response based on TCPDF (http://tcpdf.sourceforge.net)
  20. @package  jelix
  21. @subpackage core_response
  22. @since 1.0
  23. */
  24. class jResponseTcpdf  extends jResponse {
  25.     /**
  26.     * @var string 
  27.     */
  28.     protected $_type = 'tcpdf';
  29.  
  30.     /**
  31.      * the tcpdf object you want to send.
  32.      * @var object 
  33.      */
  34.     public $tcpdf = null;
  35.  
  36.     /**
  37.      * name of the file under which the file will be send to the user
  38.      * @var string 
  39.      */
  40.     public $outputFileName = 'document.pdf';
  41.  
  42.     /**
  43.      * Says if the "save as" dialog appear or not to the user.
  44.      * @var boolean 
  45.      */
  46.     public $doDownload = false;
  47.  
  48.     /**
  49.      * send the PDF to the browser.
  50.      * @return boolean    true if it's ok
  51.      */
  52.     public function output(){
  53.  
  54.         if($this->hasErrors()) return false;
  55.  
  56.         if(!($this->tcpdf instanceof jTcpdf)){
  57.             throw new jException('jelix~errors.reptcpdf.not_a_jtcpdf');
  58.             return false;
  59.         }
  60.  
  61.         if($this->doDownload)
  62.             $this->tcpdf->Output($this->outputFileName,'D');
  63.         else
  64.             $this->tcpdf->Output($this->outputFileName,'I');
  65.  
  66.         flush();
  67.         return true;
  68.     }
  69.  
  70.     /**
  71.      *
  72.      */
  73.     public function outputErrors(){
  74.         global $gJConfig;
  75.         $this->clearHttpHeaders();
  76.         $this->_httpStatusCode ='500';
  77.         $this->_httpStatusMsg ='Internal Server Error';
  78.         $this->addHttpHeader('Content-Type','text/plain;charset='.$gJConfig->charset,false);
  79.         $this->sendHttpHeaders();
  80.         if($this->hasErrors()){
  81.             foreach$GLOBALS['gJCoord']->errorMessages  as $e){
  82.                echo '['.$e[0].' '.$e[1].'] '.$e[2]." \t".$e[3]." \t".$e[4]."\n";
  83.             }
  84.         }else{
  85.             echo "[unknown error]\n";
  86.         }
  87.     }
  88.  
  89.  
  90.     /**
  91.     * Creates the TCPDF object in $this->fpdf
  92.     * @param string $orientation Orientation (portrait/landscape)
  93.     * @param string $unit Page base unit (default to millimeters)
  94.     * @param mixed $format Page size (defaults to A4)
  95.     * @param String $encoding charset encoding;
  96.     */
  97.     public function initPdf($orientation='P'$unit='mm'$format='A4'$encoding=null){
  98.         $this->tcpdf = new jTcpdf($orientation$unit$format$encoding);
  99.     }
  100.  
  101.     /**
  102.     * Transmits calls to non-existent methods to TCPDF (max : 8 params because
  103.     * TCPDF methods never take more than 8 params)
  104.     * @param string $method Method name
  105.     * @param array $attr Method parameters
  106.     * @return mixed Value returned bu FPDF's method
  107.     */
  108.     public function __call($method$attr){
  109.         if ($this->tcpdf !== null){
  110.             return call_user_func_array(array($this->tcpdf$method)$attr );
  111.         }else{
  112.             throw new jException('jelix~errors.reptcpdf.not_a_jtcpdf');
  113.             return false;
  114.         }
  115.     }
  116.  
  117. }
  118. ?>

Documentation generated on Wed, 07 Sep 2011 13:47:49 +0200 by phpDocumentor 1.4.3