使用Codeigniter生成具有MultiCell高度/单元格调整的TCPDF表

时间:2016-06-10 06:15:04

标签: codeigniter pdf tcpdf

我正在使用TCPDF生成PDF报告,我从数据库中获取数据并创建PDF TABLE。但是在我使用MultiCell的特定小区中,细节堆叠在一个区域,我使用MultiCell用于小区。以下是我的输出文件。Output File

以下是我的控制器代码

$slno=0;
        $pdf->cell(1);
        $pdf->SetFontSize(10);
        $pdf->SetFont('Helvetica', 'B');
        $pdf->Cell(8, 10, 'SL', 'LTRB', 0, 'C', FALSE);
        $pdf->Cell(24, 10, 'Applied Date', 'LTRB', 0, 'C', FALSE);
        $pdf->Cell(22, 10, 'Start Date', 'LTRB', 0, 'C', FALSE);
        $pdf->Cell(22, 10, 'End Date', 'LTRB', 0, 'C', FALSE);
        $pdf->MultiCell(12, 10, 'No. of Days', 'LTRB', 0, 'C', FALSE);
        $pdf->Cell(40, 10, 'Reason', 'LTRB', 0, 'C', FALSE);
        $pdf->Cell(30, 10, 'Category', 'LTRB', 0, 'C', FALSE);
        $pdf->Cell(20, 10, 'Status', 'LTRB', 1, 'C', FALSE);

            foreach($result->result() as $key){

                $pdf->cell(1);
                $pdf->SetFontSize(10);
                $pdf->SetFont('Helvetica', '');
                $pdf->Cell(8, 10, ++$slno, 'LBR', 0, 'C', FALSE);
                $pdf->Cell(24, 10, $key->application_date, 'LBR', 0, 'C', FALSE);
                $pdf->Cell(22, 10, $key->start_date, 'LBR', 0, 'C', FALSE);
                $pdf->Cell(22, 10, $key->end_date, 'LBR', 0, 'C', FALSE);
                $pdf->Cell(12, 10, $key->number_of_days, 'LBR', 0, 'C', FALSE);
                $pdf->MultiCell(40, 10, $key->reason, 'LBR', 0, 'C', FALSE);
                $pdf->Cell(30, 10, $key->leave_type, 'LBR', 0, 'C', FALSE);
                $pdf->Cell(20, 10, $key->status, 'LBR', 1, 'C', FALSE);
            }

我通过网络尝试了所有其他方式,但我对结果不满意。有没有其他方法可以使该表适合看?请帮助不多......

1 个答案:

答案 0 :(得分:1)

使用html创建表格的writeHTML会更好。因为我已经尝试了解决方案来调整多单元,问题是没有固定解决方案可以手动调整每行允许的字符的最大长度。每个角色都没有相同的宽度。 您可以在http://www.tcpdf.org/examples.php

查看示例

其他:

例如,您要求使用此方法从db获取数据 首先,您需要声明表格标题的变量

$html = '<table>
           <tr>
              <th>Column 1</th>
              <th>Column 2</th>
              <th>Column 3</th>
              <th>Column 4</th>
           </tr>';
 foreach($result->result() as $key){
     $html .= '<tr>
                  <td>'.$key->column1.'</td>
                  <td>'.$key->column2.'</td>
                  <td>'.$key->column3.'</td>
                  <td>'.$key->column4.'</td>
               </tr>';
  }
  $html .= '</table>';

然后你可以写出那个变量。 这是评论中您的其他问题的简单示例。 您可以使用HTML技能进行改进。但请记住,TCPDF并不完全支持CSS。 希望能帮到你。