我使用FPDF和Cell方法创建了一个表。这很好用,但是每列都有一个设定的宽度,这会导致一些问题,因为表格超出了正确的页面边距,产品名称也会与产品价格重叠,从而无法阅读。
在Google和Stack上研究了这个问题后,我将代码更改为MultiCell,但现在每列都有一整行。我提供了Cell和MultiCell表的图片,并提供了每种方法的代码。
我希望你们中的一个可以提供帮助。
感谢。
Cell方法代码:
class PDF extends FPDF {
function LoadData($file) {
$lines = file($file);
$data = array();
foreach($lines as $line)
$data[] = explode(';', trim($line));
return $data;
}
function BasicTable($header, $data) {
$nameIndex = array_search ('Name', $header);
foreach($header as $key => $col) {
$width = ($key == $nameIndex) ? 80 : 40;
$this->Cell($width, 7, $col, 1);
}
$this->Ln();
foreach($data as $row) {
foreach($row as $key => $col) {
$width = ($key == $nameIndex) ? 80 : 40;
$this->Cell($width, 6, $col, 1);
}
$this->Ln();
}
}
}
MultiCell方法代码:
class PDF extends FPDF {
function LoadData($file) {
$lines = file($file);
$data = array();
foreach($lines as $line)
$data[] = explode(';', trim($line));
return $data;
}
function BasicTable($header, $data) {
$nameIndex = array_search ('Name', $header);
foreach($header as $key => $col) {
$this->MultiCell($width, 7, $col, 1);
}
$this->Ln();
foreach($data as $row) {
foreach($row as $key => $col) {
$this->MultiCell($width, 6, $col, 1);
}
$this->Ln();
}
}
}
答案 0 :(得分:0)
我相信这个带有类似问题的帖子有助于解决您的问题:FPDF print MultiCell() adjacently
答案 1 :(得分:0)
如果可能的话,您可以参考FPDF linebreak in PHP。但它不是用于单元格或多单元格的。它用ROW。 ROW包含多单元格。