我正在尝试使用FPDF在单元格中换行。
这是我的代码。
<?php
require('fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','',16);
$pdf->Cell(20,7,'Hi1',1);
$pdf->Cell(20,7,'Hi2',1);
$pdf->Cell(20,7,'Hi3',1);
$pdf->Ln();
$pdf->Cell(20,7,'Hi4',1);
$pdf->Cell(20,7,'Hi5(xtra)',1);
$pdf->Cell(20,7,'Hi5',1);
$pdf->Output();
?>
此代码的输出如下所示
现在,我要包装存储在单元格中的Xtra文本。 Xtra文本应进入第二行。我应该怎么做。
当我在该行上使用MultiCell $ pdf-> MultiCell(20,7,'Hi5(xtra)',1);它正在更改为以下内容。
我已经尝试过Log1c提到的答案
最佳答案
使用MultiCell()
代替Cell()
更改此:
$pdf->Cell(20,7,'Hi5(xtra)',1);
至:
$pdf->MultiCell( 20, 7, 'Hi5(xtra)', 1);
MultiCell()用于打印多行文本。
编辑:
我可以看到
MultiCell()
中断了这一行,因此新单元格将放置在当前位置下方。在这种情况下,可以在输出每个单元格之后计算
x
和y
坐标,并计算新位置和设置位置。<?php
require('fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$start_x=$pdf->GetX(); //initial x (start of column position)
$current_y = $pdf->GetY();
$current_x = $pdf->GetX();
$cell_width = 20; //define cell width
$cell_height=7; //define cell height
$pdf->SetFont('Arial','',16);
$pdf->MultiCell($cell_width,$cell_height,'Hi1',1); //print one cell value
$current_x+=$cell_width; //calculate position for next cell
$pdf->SetXY($current_x, $current_y); //set position for next cell to print
$pdf->MultiCell($cell_width,$cell_height,'Hi2',1); //printing next cell
$current_x+=$cell_width; //re-calculate position for next cell
$pdf->SetXY($current_x, $current_y); //set position for next cell
$pdf->MultiCell($cell_width,$cell_height,'Hi3',1);
$current_x+=$cell_width;
$pdf->Ln();
$current_x=$start_x; //set x to start_x (beginning of line)
$current_y+=$cell_height; //increase y by cell_height to print on next line
$pdf->SetXY($current_x, $current_y);
$pdf->MultiCell($cell_width,$cell_height,'Hi4',1);
$current_x+=$cell_width;
$pdf->SetXY($current_x, $current_y);
$pdf->MultiCell($cell_width,$cell_height,'Hi5(xtra)',1);
$current_x+=$cell_width;
$pdf->SetXY($current_x, $current_y);
$pdf->MultiCell($cell_width,$cell_height,'Hi5',1);
$current_x+=$cell_width;
$pdf->SetXY($current_x, $current_y);
$pdf->Output();
?>
关于php - 在PHP中的Fpdf中换行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23542244/