how to auto adjust cell width in fpdf using php and mysql
23,699
Use string width for cell with
$string = fullname($USER);
$cellWidth = $pdf->GetStringWidth($string);
$pdf->Cell($cellWidth + 5, 0, $string, 0, 0, 'C', true);
String width doc http://www.fpdf.org/en/doc/getstringwidth.htm
Cell docs http://www.fpdf.org/en/doc/cell.htm
Author by
Mohamed Musthafa
Updated on February 01, 2020Comments
-
Mohamed Musthafa over 4 years
I have a problem in creating table structure in pdf using fpdf library. when any data of perticular cell have a long string then the cell data will overlap with other cell data.. auto adjust cell width in fpdf... plz help me...
My code:
<?php require("fpdf/fpdf.php"); //Connect to your database $mysqli = new mysqli('localhost', 'root', '', 'mus'); /* * This is the "official" OO way to do it, */ if (mysqli_connect_error()) { die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); } //Create new pdf file $pdf=new FPDF(); //Open file $pdf->Open(); //Disable automatic page break $pdf->SetAutoPageBreak(false); //Add first page $pdf->AddPage(); //set initial y axis position per page $y_axis_initial = 25; //print column titles for the actual page $pdf->SetFillColor(232, 232, 232); $pdf->SetFont('Arial', 'B', 10); $pdf->SetY($y_axis_initial); $pdf->SetX(5); $pdf->Cell(10, 6, 'CODE', 1, 0, 'L', 1); $pdf->Cell(40, 6, 'NAME', 1, 0, 'L', 1); $pdf->Cell(40, 6, 'PRICE', 1, 0, 'L', 1); $row_height = 6; $y_axis = $y_axis_initial + $row_height; //Select the Products you want to show in your PDF file $sql = 'SELECT WaiterPckey, WaiterName, WaiterShortName FROM `waitermaster`'; $result= $mysqli->query($sql); //initialize counter $i = 0; //Set maximum rows per page $max = 25; //Set Row Height ; while($row = $result->fetch_row()) { //If the current row is the last one, create new page and print column title if ($i == $max) { $pdf->AddPage(); //print column titles for the current page $pdf->SetY($y_axis_initial); $pdf->SetX(4); $pdf->Cell(10, 6, 'CODE', 1, 0, 'L', 1); $pdf->Cell(40, 6, 'NAME', 1, 0, 'L', 1); $pdf->Cell(40, 6, 'PRICE', 1, 0, 'L', 1); //Go to next row $y_axis = $y_axis + $row_height; //Set $i variable to 0 (first row) $i = 0; } $code = $row[0]; $price = $row[1]; $name = $row[2]; $pdf->SetY($y_axis); $pdf->SetX(5); $pdf->Cell(10, 6, $code, 1, 0, 'L', 1); $pdf->Cell(40, 6, $name, 1, 0, 'L', 1); $pdf->Cell(40, 6, $price, 1, 0, 'L', 1); //Go to next row $y_axis = $y_axis + $row_height; $i = $i + 1; } //Create file $pdf->Output(); ?> ?>