0

我有一个表单,其中包含一个宽度为 30 列的文本区域。此文本区域和其他一些文本应通过 FPDF 以 .pdf 格式显示。文本区域显示如下:

$text=$row->fehlerbeschreibung;
$text=str_replace(array("\r\n", "\n", "\r"),"",$text);
$pdf->MultiCell(0,6,$text);

您会看到我想忽略由于 30 cols 的宽度而发生的换行符。但是,每当您按 Enter 创建换行符时,都应该显示换行符。为了避免这个问题,换行符的编码有什么不同吗?或者你知道另一种方式吗?

4

4 回答 4

1

换行符仅在按 Enter 时创建,因此您应该通过

$array = explode("\n",$string);

然后像这样循环遍历数组;

foreach($array  as $key => $item) {
$pdf->MultiCell(0,6,$item);
$pdf->Ln();
}
于 2012-12-03T13:17:16.157 回答
1

只需使用 MultiCell

例子:

$this->MultiCell(60,5,$Variable);
于 2017-01-15T18:51:48.840 回答
0

我建议使用该功能nl2br()

于 2019-10-28T18:03:54.600 回答
0

考虑您的 textarea 字段是历史。所以你可以做的是:

$lengthofhistory = strlen($_SESSION['history']); 
$pdf- >SetFont('Helvetica','',10); $start = 0; $space = 0;
for($i=0;$i<=$lengthofhistory;$i++)
{
$char = substr( $_SESSION['history'], $i, 1 );
if($char == ' ') { $space = $space + 1; 
if($space == 18) { $substring =   substr($_SESSION['history'],$start,$i- $start); 
$pdf->Cell(0,5,$substring,0,1,'L'); $start = $i+1; $space = 0; } }
}
$substring = substr($_SESSION['history'],$start,$lengthofcomplaints-$start);
$pdf->Cell(0,5,$substring,0,1,'L');
于 2016-05-21T17:00:02.597 回答