Source for file jTcpdf.class.php

Documentation is available at jTcpdf.class.php

  1. <?php
  2. /**
  3. @package     jelix
  4. @subpackage  utils
  5. @author      Julien Issler
  6. @contributor Laurent Jouanneau
  7. @copyright   2007-2009 Julien Issler, 2007-2012 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. define('K_TCPDF_EXTERNAL_CONFIG',true);
  14. define('K_PATH_MAIN'LIB_PATH.'tcpdf/');
  15. define('K_PATH_URL',
  16.        jApp::coord()->request->getServerURI(.
  17.        jApp::config()->urlengine['basePath']);
  18. define('K_PATH_FONTS'LIB_PATH.'pdf-fonts/');
  19. define('K_PATH_CACHE'jApp::tempPath());
  20. define('K_PATH_IMAGES'jApp::appPath());
  21. define('K_BLANK_IMAGE'K_PATH_MAIN.'images/_blank.png');
  22. define('K_CELL_HEIGHT_RATIO'1.25);
  23. define('K_SMALL_RATIO'2/3);
  24. require_once (LIB_PATH.'tcpdf/tcpdf.php');
  25.  
  26. /**
  27.  * sub-class of TCPDF, for better Jelix integration (error handling) and easy save to disk feature.
  28.  * @package    jelix
  29.  * @subpackage utils
  30.  * @since 1.0
  31.  */
  32. class jTcpdf extends TCPDF {
  33.  
  34.     public function __construct($orientation='P'$unit='mm'$format='A4'$encoding=null{
  35.  
  36.         if($encoding === null)
  37.             $encoding jApp::config()->charset;
  38.  
  39.         if(!is_dir(K_PATH_FONTS)) {
  40.             throw new jException('jelix~errors.tcpdf.fonts_missing'array(K_PATH_FONTS));
  41.         }
  42.  
  43.         parent::__construct($orientation$unit$format($encoding == 'UTF-8' || $encoding == 'UTF-16')$encoding);
  44.  
  45.         $this->setHeaderFont(array('helvetica','',10));
  46.         $this->setFooterFont(array('helvetica','',10));
  47.         $this->setFont('helvetica','',10);
  48.     }
  49.  
  50.  
  51.     /**
  52.      * Throw an exception when an error occurs, instead of die()
  53.      * @param string $msg The error's message generated by TCPDF
  54.      */
  55.     public function Error($msg){
  56.         throw new Exception($msg);
  57.     }
  58.  
  59.  
  60.     /**
  61.      * Method to save the current document to a file on the disk
  62.      * @param string $filename The target filename
  63.      * @param string $path The target path where to store the file
  64.      * @return boolean TRUE if success, else throws a jException
  65.      */
  66.     public function saveToDisk($filename,$path){
  67.  
  68.         if(!is_dir($path))
  69.             throw new jException('jelix~errors.file.directory.notexists',array($path));
  70.  
  71.         if(!is_writable($path))
  72.            throw new jException('jelix~errors.file.directory.notwritable',array($path));
  73.  
  74.         if(file_put_contents(realpath($path).'/'.$filename$this->Output('','S')))
  75.            return true;
  76.  
  77.         throw new jException('jelix~errors.file.write.error',array($path.'/'.$filename,''));
  78.  
  79.     }
  80.  
  81. }

Documentation generated on Mon, 26 Oct 2015 21:56:28 +0100 by phpDocumentor 1.4.3