CLICK HERE TO BUY IT TODAY! OR GET IT FREE VIA TRIALPAY  

PHP Demo Application - Source Code

/Framework/Model/Libraries/OutputFormats/Pdf.php

<?php
/**
* Script Contents: Apeel_Framework_Model_Libraries_Export_OutputFormats_Pdf Class
* Extends Apeel_Framework_Model_Libraries_Export_OutputFormats_Abstract
* @package Apeel_Framework_Model_Libraries
*/

/**
* Generates a document in PDF format using the TCPDF library.  

* Takes Html formatted data and uses TCPDF's writeHTML method to generate the
* document.  

* TCPDF is a very powerful library and this class barely scratches the 
* surface of what you can do with it.  

* Please Note:  TCPDF is very sensitive to improperly nested HTML and does not
* support every available HTML tag/attribute.  CSS support is particularly 
* limited.  

* @package      Apeel_Framework_Model_Libraries 
* @version      1.1.0
* @author       John W. King (email: contact@apeelframework.net)
* @copyright    City Business Logic Limited 2001-2011
* @license      Dual MIT / GNU Lesser General Public License Version 3
*/
class Apeel_Framework_Model_Libraries_Export_OutputFormats_Pdf extends Apeel_Framework_Model_Libraries_Export_OutputFormats_Abstract
{
    
// Set Document Defaults - see TCPDF documention for more info.  
    
private $_document NULL;
 
    public 
$orientation 'P';
    public 
$unit 'mm';
    public 
$format 'A4';
    public 
$unicode true;
    public 
$encoding 'UTF-8';
    public 
$diskCache false;
    
    public 
$creator '';
    public 
$author '';
    public 
$title '';
    public 
$subject '';
    public 
$keywords '';
    public 
$useCompression true;
    public 
$jpegQuality 75;
    
    public 
$marginLeft 15;
    public 
$marginTop 15;
    public 
$marginRight 15;
    public 
$marginBottom 15;
    
    public 
$useHeader false;
    public 
$useFooter false;    
    
    public 
$headerMargin 0;
    public 
$footerMargin 0;
    
    public 
$useAutoPageBreak true;
    public 
$pageBreakMargin 5;
    
    public 
$zoom 'fullpage';  
    public 
$layout 'continuous';  
    
    
    
/**
    * Constructor creates a new instance of TCPDF library class and sets some
    * default values.  
    * 
    * @return void
    */
    
public function __construct($columns 0) {

        
// If more then 3 columns, set to Landscape
        
if ($columns >= 3) {
            
$this->orientation 'L';
        }
        
        
$this->_document = new TCPDF(
            
$this->orientation
            
$this->unit
            
$this->format,
            
$this->unicode,
            
$this->encoding,
            
$this->diskCache                
        
);

        
// set document information
        
$this->_document->SetCreator($this->creator);
        
$this->_document->SetAuthor($this->author);
        
$this->_document->SetTitle($this->title);
        
$this->_document->SetSubject($this->subject);
        
$this->_document->SetKeywords($this->keywords);
        
$this->_document->SetCompression($this->useCompression);
        
$this->_document->setJPEGQuality($this->jpegQuality);
        
        
//set margins
        
$this->_document->SetMargins(
            
$this->marginLeft,
            
$this->marginTop,
            
$this->marginRight,
            
$this->marginBottom
        
);

        
// remove default header/footer
        
$this->_document->setPrintHeader($this->useHeader);
        
$this->_document->setPrintFooter($this->useFooter);
        
$this->_document->SetHeaderMargin($this->headerMargin);
        
$this->_document->SetFooterMargin($this->footerMargin);

        
//set auto page breaks
        
$this->_document->SetAutoPageBreak(
            
$this->useAutoPageBreak
            
$this->pageBreakMargin
        
);
        
        
//set default zoom
        
$this->_document->SetDisplayMode(
            
$this->zoom,
            
$this->layout
        
);    

        
//initialize document
        
$this->_document->AliasNbPages();
     
    }
    
    
    
/**
    * Uses TCPDF's writeHTML method to output the supplied $data value (which 
    * must be in HTML format) and outputs the pdf under the filename given,
    * which should not contain the .pdf extension as this will be added 
    * automatically.  
    * 
    * @param mixed $data
    * @param mixed $filename
    * @return void
    */
    
public function generateDocument($data$filename) {   
        
$this->_document->AddPage();
        
$this->_document->writeHTML($data);    
        if (
$filename == '') {
            
$this->_document->Output(md5(rand()) . '.pdf''D');    
        } else {
            
$this->_document->Output($filename'D');
        }
    }
   
}
  
?>

PHP Demo Source Code Index