 |
Downloads > Add-On |
 |
|
 |
| |
|
|
|
|
| |
Fancy Row
InformationsAuthor: Angelo Galleja License: Freeware
DescriptionThis script extends the Row() function from the script Table with MultiCells. It provides
borders, alignments, font styles and maxlines (to use this last feature, you'll need the script MultiCell with maxline).
Source
<?php require 'mc_table.php';
class PDF_FancyRow extends PDF_MC_TABLE { function FancyRow($data, $border=array(), $align=array(), $style = array(), $maxline=array()) { //Calculate the height of the row $nb = 0; for($i=0;$i<count($data);$i++) { $nb = max($nb, $this->NbLines($this->widths[$i], $data[$i])); } if (count($maxline)) { $_maxline = max($maxline); if ($nb > $_maxline) { $nb = $_maxline; } } $h = 5*$nb; //Issue a page break first if needed $this->CheckPageBreak($h); //Draw the cells of the row for($i=0;$i<count($data);$i++) { $w=$this->widths[$i]; // alignment $a = isset($align[$i]) ? $align[$i] : 'L'; // maxline $m = isset($maxline[$i]) ? $maxline[$i] : false; //Save the current position $x = $this->GetX(); $y = $this->GetY(); //Draw the border if ($border[$i]==1) { $this->Rect($x, $y, $w, $h); } else { $_border = strtoupper($border[$i]); if (strstr($_border, 'L')!==false) { $this->Line($x, $y, $x, $y+$h); } if (strstr($_border, 'R')!==false) { $this->Line($x+$w, $y, $x+$w, $y+$h); } if (strstr($_border, 'T')!==false) { $this->Line($x, $y, $x+$w, $y); } if (strstr($_border, 'B')!==false) { $this->Line($x, $y+$h, $x+$w, $y+$h); } } // Setting Style if (isset($style[$i])) { $this->SetFont('', $style[$i]); } $this->MultiCell($w, 5, $data[$i], 0, $a, 0, $m); //Put the position to the right of the cell $this->SetXY($x+$w, $y); } //Go to the next line $this->Ln($h); } } ?>
|
Example
<?php define('FPDF_FONTPATH', 'font/'); require 'fancyrow.php';
$pdf = new PDF_FancyRow(); $pdf->AddPage(); $pdf->SetFont('Arial', '', 12); $pdf->Write(12, 'Please fill in your name, company and email below:'); $pdf->Ln(20); $widths = array(5, 40, 5, 40, 5, 40); $border = array('', 'LBR', '', 'LBR', '', 'LBR'); $caption = array('', 'Name', '', 'Company', '', 'Email'); $align = array('', 'C', '', 'C', '', 'C'); $style = array('', 'I', '', 'I', '', 'I'); $empty = array('', '', '', '', '', ''); $pdf->SetWidths($widths); $pdf->FancyRow($empty, $border); $pdf->FancyRow($caption, array(), $align, $style); $pdf->Output(); ?>
|
View the result here.
DownloadZIP | TGZ
| |