Fpdf Table (Advanced)

 

Description:

This FPDF addon class allows creation of a “Advanced Tables” in the pdf document in a very simple way.

Features:

  • Fpdf class doesn’t need to be extended anymore, the fpdf object will be passed as a parameter to the class constructor
  • Every table cell is a fully featured Fpdf Multicell(Advanced)
  • The table cells can be aligned vertically and horizontally
  • Columns and rows can be spanned
  • The table splits automatically on page-break
  • The header can be added automatically on every new page
  • Multiple default properties can be defined for headers and rows, which can be overridden for every single cell
  • Advanced split mode for cells can be enabled
  • Table can be transparent
  • Images can be added to table cells

Observation:

Resources:

Pdf example #1:


<?php

$oTable = new Pdf_Table$oPdf );

$oTable->SetStyle"p"$oPdf->getDefaultFontName(), ""7"130,0,30" );
$oTable->SetStyle"b"$oPdf->getDefaultFontName(), "B"7"130,0,30" );

$nColumns 3;

/**
 * Set the tag styles
 */

$oTable->initialize( array( 203050 ) );

$aHeader = array(
    array( 
'TEXT' => 'Header #1' ),
    array( 
'TEXT' => 'Header #2' ),
    array( 
'TEXT' => 'Header #3' ),
);

//add the header row
$oTable->addHeader$aHeader );

for ( $j 1$j 3$j++ )
{
    
$aRow = array();
    
$aRow][ 'TEXT' ] = "Line $j";
    
$aRow][ 'TEXT' ] = "Lorem ipsum dolor sit amet...";
    
$aRow][ 'TEXT' ] = "<p>Simple text\n<b>Bold text</b></p>";

    //add the data row
    
$oTable->addRow$aRow );
}

//close the table
$oTable->close();

 


<?php

require( 'settings.php' );

$oTable = new Pdf_Table$oPdf );

$oTable->SetStyle"p"$oPdf->getDefaultFontName(), ""7"130,0,30" );
$oTable->SetStyle"b"$oPdf->getDefaultFontName(), "B"7"130,0,30" );
$oTable->setStyle"bi"$oPdf->getDefaultFontName(), "BI"7"0,0,120" );

$nColumns 3;

/**
 * Set the tag styles
 */

$oTable->initialize( array( 203080 ) );

$aHeader = array(
    array(
        
'TEXT' => 'Header #1'
    
),
    array(
        
'TEXT' => 'Header #2'
    
),
    array(
        
'TEXT' => 'Header #3'
    
)
);

//add the header row
$oTable->addHeader$aHeader );

$aImageCell = array(
    
'TYPE' => 'IMAGE',
    
'FILE' => PDF_APPLICATION_PATH '/images/dice.jpg',
    
'WIDTH' => 10
);

//row 1 - add data as Array
$aRow = array();
$aRow][ 'TEXT' ] = "Line <b>1</b>";

$aRow] = array(
    
'TYPE' => 'IMAGE',
    
'FILE' => PDF_RESOURCES_IMAGES '/dice.jpg',
    
'WIDTH' => 10
);

$aRow][ 'TEXT' ] = "<p>All <b>table cells</b> are fully functional <bi>Advanced Multicells</bi>\nDetails on <bi href='http://www.interpid.eu'>www.interpid.eu</bi></p>";
$aRow][ 'ALIGN' ] = "L";

//add the data row
$oTable->addRow$aRow );

//row 2 - add data as Objects
$aRow = array();

//alternatively you can create directly the cell object
$aRow] = new Pdf_Table_Cell_Image$oPdfPDF_RESOURCES_IMAGES '/blog.jpg'10 );
$aRow] = array(
    
'TEXT' => "<p>This is another <b>Multicell</b></p>",
    
'BACKGROUND_COLOR' => $aColor] );
$aRow] = new Pdf_Table_Cell_Image$oPdfPDF_RESOURCES_IMAGES '/pensil.jpg'10 );
$aRow]->setAlign"L" );

//add the data row
$oTable->addRow$aRow );

//close the table
$oTable->close();

 

View the result pdf

Pdf example #2:


<?php
/**
 * Pdf Advanced Table - Example
 * Copyright (c) 2014, Andrei Bintintan, http://www.interpid.eu
 */

// include the pdf factory
require_once( "pdfFactory.php" );

// Include the Advanced Table Class
require_once( "classes/pdftable.php" );

/**
 * Include my Custom PDF class This is required only to overwrite the header
 */
require_once( "mypdf-table.php" );

$factory = new pdfFactory();

// create new PDF document
$oPdf = new myPdfTable();
$factory->initPdfObject$oPdf );

//define some background colors
$aBgColor1 = array( 234255218 );
$aBgColor2 = array( 165250220 );
$aBgColor3 = array( 255252249 );
/**
 * Create the pdf Table object
 * Alternative you can use the Singleton Instance
 *
 * @example : $oTable = PdfTable::getInstance($oPdf);
 */
$oTable = new PdfTable$oPdf );

/**
 * Set the tag styles
 */
$oTable->setStyle"p"$oPdf->getDefaultFontName(), ""10"130,0,30" );
$oTable->setStyle"b"$oPdf->getDefaultFontName(), ""9"80,80,260" );
$oTable->setStyle"h1"$oPdf->getDefaultFontName(), ""10"0,151,200" );
$oTable->setStyle"bi"$oPdf->getDefaultFontName(), "BI"12"0,0,120" );

$sTxt1 "<p>All table cells are fully functional <bi href='http://www.interpid.eu/pdf-multicell'>pdf Advanced Multicells</bi>\nDetails about Pdf Advanced Multicell can be found <h1 href='http://http://www.interpid.eu/pdf-tcpdf-addons'>here</h1></p>";

//Initialize the table class, 5 columns with the specified widths
$oTable->initialize( array( 2030404020 ) );

$aHeader = array( array( 'TEXT' => 'Header 1' ), array( 'TEXT' => 'Header 2' ), array( 'TEXT' => 'Header 3' ), array( 'TEXT' => 'Header 4' ), array( 'TEXT' => 'Header 5' ) );

//add the header line
$oTable->addHeader$aHeader );

//do some adjustments in the header
$aHeader][ 'TEXT' ] = 'Header Colspan/Rowspan';
$aHeader][ 'COLSPAN' ] = 2;
$aHeader][ 'ROWSPAN' ] = 2;
$aHeader][ 'TEXT_COLOR' ] = array( 1020100 );
$aHeader][ 'BACKGROUND_COLOR' ] = $aBgColor2;

$oTable->addHeader$aHeader );

//add an empty header line
$oTable->addHeader();

$fsize 5;
$colspan 2;
$rowspan 2;

$rgb_r 255;
$rgb_g 255;
$rgb_b 255;

for ( $j 0$j 45$j++ )
{
    
$aRow = Array();
    
$aRow][ 'TEXT' ] = "Row No - $j";
    
$aRow][ 'TEXT_SIZE' ] = $fsize;
    
$aRow][ 'TEXT' ] = "Test Text Column 1- $j";
    
$aRow][ 'TEXT_SIZE' ] = 13 $fsize;
    
$aRow][ 'TEXT' ] = "Test Text Column 2- $j";
    
$aRow][ 'TEXT' ] = "Longer text, this will split sometimes...";
    
$aRow][ 'TEXT_SIZE' ] = 15 $fsize;
    
$aRow][ 'TEXT' ] = "Short 4- $j";
    
$aRow][ 'TEXT_SIZE' ] = 7;

    if ( $j == )
    {
        
$aRow][ 'TEXT' ] = $sTxt1;
        
$aRow][ 'COLSPAN' ] = 4;
        
$aRow][ 'ALIGN' ] = "C";
        
$aRow][ 'LINE_SIZE' ] = 5;
    } elseif ( 
$j == )
    {

        $aRow][ 'TEXT' ] = "Top Right Align <p>Align Top</p> Right Right Align";
        
$aRow][ 'ALIGN' ] = "RT";

        $aRow][ 'TEXT' ] = "Middle Center Align Bold Italic";
        
$aRow][ 'TEXT_TYPE' ] = "BI";
        
$aRow][ 'ALIGN' ] = "MC";

        $aRow][ 'TEXT' ] = "\n\n\n\n\nBottom Left Align";
        
$aRow][ 'ALIGN' ] = "BL";

        $aRow][ 'TEXT' ] = "Middle Justified Align Longer text";
        
$aRow][ 'ALIGN' ] = "MJ";

        $aRow][ 'TEXT' ] = "TOP RIGHT Align with top padding(5)";
        
$aRow][ 'ALIGN' ] = "TR";
        
$aRow][ 'PADDING_TOP' ] = 5;
    }

    if ( $j == )
    {
        
$aRow][ 'TEXT' ] = "Cells can be images -->>>";
        
$aRow] = array(
            
'TYPE' => 'IMAGE',
            
'FILE' => __DIR__ '/images/dice.jpg',
            
'WIDTH' => 15
        
);
    }

    if ( $j )
    {
        
$aRow][ 'BACKGROUND_COLOR' ] = array( 255 $rgb_b$rgb_g$rgb_r );
        
$aRow][ 'BACKGROUND_COLOR' ] = array( $rgb_r$rgb_g$rgb_b );
    }

    if ( $j && $j )
    {
        
$aRow][ 'TEXT' ] = "Colspan Example - Center Align";
        
$aRow][ 'COLSPAN' ] = $colspan;
        
$aRow][ 'BACKGROUND_COLOR' ] = array( $rgb_b5050 );
        
$aRow][ 'TEXT_COLOR' ] = array( 255255$rgb_g );
        
$aRow][ 'TEXT_ALIGN' ] = "C";
        
$colspan++;
        if ( 
$colspan $colspan 2;
    }

    if ( $j == )
    {
        
$aRow][ 'TEXT' ] = "Rowspan Example";
        
$aRow][ 'BACKGROUND_COLOR' ] = array( $rgb_b$rgb_b250 );
        
$aRow][ 'ROWSPAN' ] = 4;
    }

    if ( $j == )
    {
        
$aRow][ 'TEXT' ] = "Rowspan Example";
        
$aRow][ 'BACKGROUND_COLOR' ] = array( $rgb_b5050 );
        
$aRow][ 'ROWSPAN' ] = 6;
    }

    if ( $j == )
    {
        
$aRow][ 'TEXT' ] = "Rowspan Example";
        
$aRow][ 'BACKGROUND_COLOR' ] = array( $rgb_r$rgb_r$rgb_r );
        
$aRow][ 'ROWSPAN' ] = 3;
    }

    if ( $j == 12 )
    {
        
$aRow][ 'TEXT' ] = "Rowspan && Colspan Example\n\nCenter/Middle Allignment";
        
$aRow][ 'TEXT_ALIGN' ] = 'C';
        
$aRow][ 'VERTICAL_ALIGN' ] = 'M';
        
$aRow][ 'BACKGROUND_COLOR' ] = array( 234255218 );
        
$aRow][ 'ROWSPAN' ] = 5;
        
$aRow][ 'COLSPAN' ] = 2;
    }

    if ( $j == 17 )
    {
        
$aRow][ 'TEXT' ] = $sTxt1;
        
$aRow][ 'TEXT_ALIGN' ] = 'C';
        
$aRow][ 'VERTICAL_ALIGN' ] = 'M';
        
$aRow][ 'BACKGROUND_COLOR' ] = array( 234255218 );
        
$aRow][ 'ROWSPAN' ] = 5;
        
$aRow][ 'COLSPAN' ] = 4;
    }

    $fsize += 0.5;

    if ( $fsize 10 $fsize 5;

    $rgb_b -= 10;
    
$rgb_g -= 5;
    
$rgb_b -= 20;

    if ( $rgb_b 150 $rgb_b 255;
    if ( 
$rgb_g 150 $rgb_g 255;
    if ( 
$rgb_b 150 $rgb_b 255;

    $oTable->addRow$aRow );
}

//close the table
$oTable->close();

//send the pdf to the browser
$oPdf->Output();

 

View the result pdf

Click here for more examples

rvn_polyon_theme rvn_polyon_theme_tv_1_2 rvn_polyon_theme_fwv_2_0