2013-03-25 132 views
4

我想创建一个可以像动态表一样工作的东西。可能是因为我知道它会有多少个单元格,但是因为我放入单元格的内容可能会有不同的长度。我用贴的fpdf站点代码:重叠单元的FPDF表格内容

require('fpdf/fpdf.php'); 
class PDF extends FPDF{ 
function BasicTable($header, $data) 
{ 
    // Header 
    foreach($header as $col) 
     $this->Cell(40,7,$col,1); 
    $this->Ln(); 
    // Data 
    foreach($data as $row) 
    { 
     foreach($row as $col) 
      $this->Cell(40,6,$col,1); 
     $this->Ln(); 
    } 
} 
} 

而现在,如果我投入表这些值:

$header = array('Country', 'Capital', 'Area (sq km)', 'Pop. (thousands)'); 
$data = array(array('a','a','a','a'), array('a','a','a','a'), array('a','a','a','a'), array('a','a','a','a')); 
$pdf->SetY(45); 
$pdf->BasicTable($header,$data); 

一切正常。但是当我想将我的'a'变成更复杂的东西时,比如由少量词组成的句子,我的文本就会“离开”单元格,并开始与下一个单元格重叠。

是否有一种方法在fpdf自动调整细胞?

+0

我也有这个问题,你有没有设法解决这个问题?怎么样? – PinoyStackOverflower 2013-04-03 07:13:15

+0

我建议检查[TCPDF](http://www.tcpdf.org/examples.php)库。看起来它比'fpdf'更强大,所以这个问题可能在那里修复。 – Andron 2013-04-03 07:44:46

+0

@Eric,我确实解决了我的问题,但并不直接>我使用MultiCell以避免重叠,但我不得不放弃垂直表格对齐,而不是创建水平表格。如果你想我不能在这里发布工作像我一样 – Mithrand1r 2013-04-03 09:41:55

回答

0

您必须使用FPDF :: MultiCell()方法,该方法用于显示多行内容。

在MultiCell中,文本会自动换行,您不会遇到这个问题。

你也可以看看FPDF上的抽象代码,如PDMLHTML2FPDF,或者如前所述的TCPDF,但我不知道这一点。

祝您的项目顺利。