Hi so I am making a program that will fetch data from the database and display it in pdf. Some of my data are in paragraph. My problem is I have no idea how to put a linebreak in there. The output shows that they only took one line and all of the paragraphs are stack together. I am still new to this so I hope you guys can help me.
I watched some tutorial but hers were not from mysql so I'm still lost.
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('storm');
$sql="SELECT * FROM twothree";
$records=mysql_query($sql);
require("library/fpdf.php");
$pdf = new FPDF('p', 'mm', 'legal');
$pdf->AddPage();
$pdf->SetFont('Arial', '', 12);
$pdf->cell(30, 10, "SS Height", 1, 0, 'C');
$pdf->cell(30, 10, "Provinces", 1, 0, 'C');
$pdf->cell(40, 10, "Municipalities of:", 1, 0, 'C');
$pdf->cell(50, 10, "Impacts", 1, 0, 'C');
$pdf->cell(50, 10, "Advice", 1, 1, 'C');
$pdf->SetFont('Arial', '', 12);
while($row = mysql_fetch_array($records)){
$pdf->cell(30, 10, $row['ssh'], 1, 0, 'C');
$pdf->cell(30, 10, $row['provi'], 1, 0, 'C');
$pdf->cell(40, 10, $row['muni'], 1, 0, 'C');
$pdf->cell(50, 10, $row['impact'], 1, 0, 'C');
$pdf->cell(50, 10, $row['advice'], 1, 1, 'C');
}
$pdf->OutPut();
?>
Here's the pdf file.
Cell is not compatible when you want to display paragraph. You can try check below link
[http://www.fpdf.org/en/script/script3.php ]
try to copy all the functions SetWidths, SetAligns, Row, CheckPageBreak, NbLines add to fpdf.php file
you could try like below use ROW
$pdf->SetBorders(array('LT', 'LT', 'LT', 'LT', 'TLR'));
$pdf->SetWidths(array(30, 30, 40, 50, 50));
$pdf->SetAligns(array('C', 'C', 'C', 'c', 'C'));
$pdf->SetFont('Arial', 'B', 11);
$pdf->Row(array("SS Height",
"Provinces",
"Municipalities of:",
"Impacts",
"Advice"), 1);
$pdf->SetBorders(array('L', 'L', 'L', 'L', 'LR'));
$pdf->SetFont('Arial', '', 11);
while($row = mysql_fetch_array($records)){
$pdf->Row(array($row['ssh'],
$row['provi'],
$row['muni'],
$row['impact'],
$row['advice']), 1);
}
$pdf->SetBorders(array('T', 'T', 'T', 'T', 'T'));
$pdf->Row(array('','','','',''), 1, false, 1);
in FPDF.PHP file added below functions
var $widths;
var $aligns;
var $borders;
function SetWidths($w)
{
//Set the array of column widths
$this->widths=$w;
}
function SetAligns($a)
{
//Set the array of column alignments
$this->aligns=$a;
}
function SetBorders($b)
{
//Set the array of column borders
$this->borders=$b;
}
function Row($data, $bdr=0, $fill=false, $hei=5)
{
//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]));
$h=$hei*$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];
$a=isset($this->aligns[$i]) ? $this->aligns[$i] : 'L';
$b=isset($this->borders[$i]) ? $this->borders[$i] : 0;
//Save the current position
$x=$this->GetX();
$y=$this->GetY();
if ($bdr == 1) {
//Draw the border
//$this->Rect($x,$y,$w,$h, $sty);
if(strpos($b,'L')!==false)
$this->Line($x, $y, $x, $y+$h);
if(strpos($b,'R')!==false)
$this->Line($x+$w, $y, $x+$w, $y+$h);
if(strpos($b,'T')!==false)
$this->Line($x, $y, $x+$w, $y);
if(strpos($b,'B')!==false)
$this->Line($x, $y+$h, $x+$w, $y+$h);
}
//Print the text
$this->MultiCell($w, $hei, $data[$i], $b, $a, $fill);
//Put the position to the right of the cell
$this->SetXY($x+$w,$y);
}
//Go to the next line
$this->Ln($h);
}
function CheckPageBreak($h)
{
//If the height h would cause an overflow, add a new page immediately
if($this->GetY()+$h>$this->PageBreakTrigger)
$this->AddPage($this->CurOrientation);
}
function NbLines($w,$txt)
{
//Computes the number of lines a MultiCell of width w will take
$cw=&$this->CurrentFont['cw'];
if($w==0)
$w=$this->w-$this->rMargin-$this->x;
$wmax=($w-2*$this->cMargin)*1000/$this->FontSize;
$s=str_replace("\r",'',$txt);
$nb=strlen($s);
if($nb>0 and $s[$nb-1]=="\n")
$nb--;
$sep=-1;
$i=0;
$j=0;
$l=0;
$nl=1;
while($i<$nb)
{
$c=$s[$i];
if($c=="\n")
{
$i++;
$sep=-1;
$j=$i;
$l=0;
$nl++;
continue;
}
if($c==' ')
$sep=$i;
$l+=$cw[$c];
if($l>$wmax)
{
if($sep==-1)
{
if($i==$j)
$i++;
}
else
$i=$sep+1;
$sep=-1;
$j=$i;
$l=0;
$nl++;
}
else
$i++;
}
return $nl;
}
Check out fpdf's built in http://www.fpdf.org/en/doc/multicell.htm which is really just a wrapper, splitting up to multiple cell-calls.