用Php中的Fpdf换行文本

Jay*_*Jay 11 php pdf fpdf word-wrap

我正在尝试使用FPDF在Cell中包装文本.这是我的代码.

<?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();
?>
Run Code Online (Sandbox Code Playgroud)

此代码的输出如下所示 在此输入图像描述

现在我想将那里的Xtra文本包装到Cell中.xtra文本应该进入第二行.我该怎么做

当我使用MultiCell的那一行$ pdf-> MultiCell(20,7,'Hi5(xtra)',1); 它正在变成以下...... 在此输入图像描述

我试过Log1c提到的答案就是这样出来的 在此输入图像描述

Rav*_*a ツ 15

MultiCell()改用Cell()

改变这个:

$pdf->Cell(20,7,'Hi5(xtra)',1);
Run Code Online (Sandbox Code Playgroud)

至:

$pdf->MultiCell( 20, 7, 'Hi5(xtra)', 1);
Run Code Online (Sandbox Code Playgroud)

多单元()被用于与多行打印文本.

编辑:

我可以看到MultiCell(),打破线,所以新单元格将被放置在当前位置下方.

在这种情况下,您可以在输出每个单元格后计算xy协调并计算新位置和设置位置.

<?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();
?>
Run Code Online (Sandbox Code Playgroud)