2014-09-01 121 views
2

我在使用fpdf库创建PDF表格结构时遇到了问题。当perticular细胞中的任何数据有很长的字符串,则该单元格数据将与其他单元格数据重叠.. 自动调整单元格的宽度在FPDF ... plz帮助我...如何使用php和mysql自动调整fpdf中的单元格宽度

我的代码:

   <?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(); 
    ?> 
    ?> 
+0

看这里:http://stackoverflow.com/questions/3477372/make-text-wrap-在-A-细胞与 - FPDF – 2014-09-01 10:19:13

回答

0

表使用多管来解决动态的宽度和height.And的问题,请点击此链接看到。这将是 动态的宽度和高度非常有用的插件here的例子。

0

例如,您可以使用此代码。你必须要求mysql_table.php tho。

第一定义列,大小,名称和对准
ADDCOL(<列的MySQL表名称>,<柱尺寸>,<名称你优选>,<对齐>)
然后你可以打印表格。
如果你认为第一列是较小的,将其设置为10等

$pdf->AddCol('code',20,'CODE','C'); 
$pdf->AddCol('name',40,'NAME'); 
$pdf->AddCol('price',40,'PRICE','R'); 
$pdf->Table('-----PUT YOUR SQL QUERY----'); 
$pdf->Output(); 

Check it here!

相关问题