codeigniter — PHP и FPDF как обернуть текст динамически в ячейке

У меня проблема. У меня есть счет, который нарисован на столе, и описание продукта является динамическим. Когда описание очень большое, это происходит:

Текст так долго

но когда текст точного размера, у меня нет этой проблемы:

Хороший текст

Я попытался использовать следующий код при поиске в Интернете, но я не могу правильно нарисовать боковые линии:

$pdf->MultiCell(105, 5, $_products[$item->produto_id]->nome, $border = 'L', $align = 'J', $fill = false);

Результат:

Результат 1 — Текст так долго

Результат 2 — Хороший текст

Это мой код:

private function _printProducts($pdf, $order)
{
$_actualHeigth = 0;
$_noPrice = $this->input->get('noPrice');

$_units = [];
$this->load->model('unidade_model', 'units', true);
$_unitsData = $this->units->get_lista()->result();

foreach ($_unitsData as $item) {
$_units[$item->id] = $item;
}

$_products = [];
$this->load->model('produto_model', 'products', true);
$_productsData = $this->products->get_lista()->result();

foreach ($_productsData as $item) {
$_products[$item->id] = $item;
}

$_orderProducts = $this->_getProdutosDoPedido($order->id);

if (count($_orderProducts) > 0) {
$pdf->Cell(0, 0, '', count($_orderProducts) > 0 ? 'T' : '', 1);
$pdf->SetFont('Arial', 'B', 10);
$pdf->Cell(0, 5, 'PRODUTOS', 1, 1, 'C', 1);
$_actualHeigth += 5;

$pdf->SetFont('Arial', '', 10);
$pdf->Cell(15, 5, 'CÓD..', 'TBL', 0);
$pdf->Cell(15, 5, 'QTDE.', 'TBL', 0);
$pdf->Cell(15, 5, 'UNID.', 'TBL', 0);

if ($_noPrice) {
$pdf->Cell(155, 5, 'DESCRIÇÃO', 1, 1);
} else {
$pdf->Cell(105, 5, 'DESCRIÇÃO', 'TBL', 0);
$pdf->Cell(25, 5, 'PREÇO UNIT.', 'TBL', 0, 'R');
$pdf->Cell(25, 5, 'TOTAL', 1, 1, 'R');
}

$_actualHeigth += 5;

foreach ($_orderProducts as $item) {
$pdf->Cell(15, 5, $item->produto_id, 'L', 0);
$pdf->Cell(15, 5, $item->qtde, 'L', 0);
$pdf->Cell(15, 5, mb_strtoupper($_units[$_products[$item->produto_id]->unid_id]->nome), 'L', 0);

if ($_noPrice) {
$pdf->Cell(155, 5, $_products[$item->produto_id]->nome, 'LR', 1);
} else {
$pdf->MultiCell(105, 5, $_products[$item->produto_id]->nome, $border = 'L', $align = 'J', $fill = false);

// $pdf->Cell(105, 5, $_products[$item->produto_id]->nome, 'L', 0);
$pdf->Cell(25, 5, 'R$ ' . number_format($item->vlr, 2, ",", " "), 'L', 0, 'R');
$pdf->Cell(25, 5, 'R$ ' . number_format($item->vlr_total, 2, ",", " "), 'LR', 1, 'R');
}
$_actualHeigth += 5;
}
$pdf->SetFont('Arial', 'B', 10);
$pdf->Cell(150, 5, '', 'T');
$pdf->Cell(25, 5, 'TOTAL', 'TBL', 0, 'R');
$pdf->Cell(25, 5, 'R$ ' . number_format($order->vlr_prod, 2, ",", " "), 1, 1, 'R');
$_actualHeigth += 5;
}

return $_actualHeigth;
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …