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""arial"""7"130,0,30" );
$oTable->SetStyle"b""arial""B"7"130,0,30" );

$nColumns 3;

/**
 * Set the tag styles
 */
//@formatter:off
$oTable->initialize( array( 203050) );
//@formatter:on

$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[0]['TEXT'] = "Line $j";
    
$aRow[1]['TEXT'] = "Lorem ipsum dolor sit amet...";
    
$aRow[2]['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""arial"""7"130,0,30" );
$oTable->SetStyle"b""arial""B"7"130,0,30" );
$oTable->setStyle"bi""arial""BI"7"0,0,120" );

$nColumns 3;

/**
* Set the tag styles
*/
//@formatter:off
$oTable->initialize( array( 203080) );
//@formatter:on

$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[0]['TEXT'] = "Line <b>1</b>";

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

$aRow[2]['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[2]['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[0] = new Pdf_Table_Cell_Image$oPdfPDF_RESOURCES_IMAGES '/blog.jpg'10 );
$aRow[1] = array(
    
'TEXT' => "<p>This is another <b>Multicell</b></p>"
    
'BACKGROUND_COLOR' => $aColor[0]);
$aRow[2] = new Pdf_Table_Cell_Image$oPdfPDF_RESOURCES_IMAGES '/pensil.jpg'10 );
$aRow[2]->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) 2005-2013, Andrei Bintintan, http://www.interpid.eu
*/

//include pdf class
require_once ("classes/pdf.php");

/**
 * mypdf extends pdf class, it is used to draw the header and footer
 */
require_once ("mypdf-table.php");

//Tag Based Multicell Class
require_once ("classes/pdftable.php");

//define some background colors
$aBgColor1 = array(234255218);
$aBgColor2 = array(165250220);
$aBgColor3 = array(255252249);

//create the pdf object and do some initialization
$oPdf = new myPdf();
$oPdf->Open();
$oPdf->SetAutoPageBreak(true20);
$oPdf->SetMargins(202020);
$oPdf->AddPage();
$oPdf->AliasNbPages();

/**
 * 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""times"""10"130,0,30");
$oTable->setStyle("b""times"""9"80,80,260");
$oTable->setStyle("h1""times"""10"0,151,200");
$oTable->setStyle("bi""times""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[2]['TEXT'] = 'Header Colspan/Rowspan';
$aHeader[2]['COLSPAN'] = 2;
$aHeader[2]['ROWSPAN'] = 2;
$aHeader[2]['TEXT_COLOR'] = array(1020100);
$aHeader[2]['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[0]['TEXT'] = "Row No - $j";
    
$aRow[0]['TEXT_SIZE'] = $fsize;
    
$aRow[1]['TEXT'] = "Test Text Column 1- $j";
    
$aRow[1]['TEXT_SIZE'] = 13 $fsize;
    
$aRow[2]['TEXT'] = "Test Text Column 2- $j";
    
$aRow[3]['TEXT'] = "Longer text, this will split sometimes...";
    
$aRow[3]['TEXT_SIZE'] = 15 $fsize;
    
$aRow[4]['TEXT'] = "Short 4- $j";
    
$aRow[4]['TEXT_SIZE'] = 7;
    
    if (
$j == 0) {
        
$aRow[1]['TEXT'] = $sTxt1;
        
$aRow[1]['COLSPAN'] = 4;
        
$aRow[1]['ALIGN'] = "C";
        
$aRow[1]['LINE_SIZE'] = 5;
    } elseif (
$j == 1) {
        
        
$aRow[0]['TEXT'] = "Top Right Align <p>Align Top</p> Right Right Align";
        
$aRow[0]['ALIGN'] = "RT";
        
        
$aRow[1]['TEXT'] = "Middle Center Align Bold Italic";
        
$aRow[1]['TEXT_TYPE'] = "BI";
        
$aRow[1]['ALIGN'] = "MC";
        
        
$aRow[2]['TEXT'] = "\n\n\n\n\nBottom Left Align";
        
$aRow[2]['ALIGN'] = "BL";
        
        
$aRow[3]['TEXT'] = "Middle Justified Align Longer text";
        
$aRow[3]['ALIGN'] = "MJ";
        
        
$aRow[4]['TEXT'] = "TOP RIGHT Align with top padding(5)";
        
$aRow[4]['ALIGN'] = "TR";
        
$aRow[4]['PADDING_TOP'] = 5;
    }
    
    if (
$j == 2){
        
$aRow[1]['TEXT'] = "Cells can be images -->>>";
        
$aRow[2] = array(
            
'TYPE' => 'IMAGE',
            
'FILE' => 'images/dice.jpg',
            
'WIDTH' => 15
        
);
    }
    
    if (
$j 0) {
        
$aRow[0]['BACKGROUND_COLOR'] = array(255 $rgb_b$rgb_g$rgb_r);
        
$aRow[1]['BACKGROUND_COLOR'] = array($rgb_r$rgb_g$rgb_b);
    }
    
    if (
$j && $j 7) {
        
$aRow[1]['TEXT'] = "Colspan Example - Center Align";
        
$aRow[1]['COLSPAN'] = $colspan;
        
$aRow[1]['BACKGROUND_COLOR'] = array($rgb_b5050);
        
$aRow[1]['TEXT_COLOR'] = array(255255$rgb_g);
        
$aRow[1]['TEXT_ALIGN'] = "C";
        
$colspan ++;
        if (
$colspan 4$colspan 2;
    }
    
    if (
$j == 7) {
        
$aRow[3]['TEXT'] = "Rowspan Example";
        
$aRow[3]['BACKGROUND_COLOR'] = array($rgb_b$rgb_b250);
        
$aRow[3]['ROWSPAN'] = 4;
    
    }
    
    if (
$j == 8) {
        
$aRow[1]['TEXT'] = "Rowspan Example";
        
$aRow[1]['BACKGROUND_COLOR'] = array($rgb_b5050);
        
$aRow[1]['ROWSPAN'] = 6;
    }
    
    if (
$j == 9) {
        
$aRow[2]['TEXT'] = "Rowspan Example";
        
$aRow[2]['BACKGROUND_COLOR'] = array($rgb_r$rgb_r$rgb_r);
        
$aRow[2]['ROWSPAN'] = 3;
    }
    
    if (
$j == 12) {
        
$aRow[2]['TEXT'] = "Rowspan && Colspan Example\n\nCenter/Middle Allignment";
        
$aRow[2]['TEXT_ALIGN'] = 'C';
        
$aRow[2]['VERTICAL_ALIGN'] = 'M';
        
$aRow[2]['BACKGROUND_COLOR'] = array(234255218);
        
$aRow[2]['ROWSPAN'] = 5;
        
$aRow[2]['COLSPAN'] = 2;
    }
    
    if (
$j == 17) {
        
$aRow[0]['TEXT'] = $sTxt1;
        
$aRow[0]['TEXT_ALIGN'] = 'C';
        
$aRow[0]['VERTICAL_ALIGN'] = 'M';
        
$aRow[0]['BACKGROUND_COLOR'] = array(234255218);
        
$aRow[0]['ROWSPAN'] = 5;
        
$aRow[0]['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