es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo ajustar automáticamente la altura de una celda en fpdf

¿Cómo puedo ajustar automáticamente la altura de las celdas en fpdf?

Mi PDF se ve un poco mal 😉

Captura de pantalla del PDF: Enlace a la captura de pantalla

Mi código:

$pdf->SetFont('Arial', 'B', 13);
$pdf->SetLeftMargin(30);
$pdf->SetFillColor(193,229,252);
$pdf->Cell(15, 20, '', 0, 1, 'C');
$pdf->Cell($width_cell[0], 10, 'Datum', 1, 0, 'C', true);
$pdf->Cell($width_cell[1], 10, 'Von', 1, 0, 'C', true);
$pdf->Cell($width_cell[2], 10, 'Bis', 1, 0, 'C', true);
$pdf->Cell($width_cell[3], 10, 'Grund', 1, 1, 'C', true);
$pdf->SetFont('Arial', '', 13);
$fill = false;
while ($z = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $pdf->Cell($width_cell[0], 10, date("d.m.Y", strtotime($z['date'])), 1, 0, 'C', $fill);
    $pdf->Cell($width_cell[1], 10, substr($z['startTime'], 0, 5) . ' Uhr', 1, 0, 'C', $fill);
    $pdf->Cell($width_cell[2], 10, substr($z['endTime'], 0, 5) . ' Uhr', 1, 0, 'C', $fill);
    $pdf->Cell($width_cell[3], 10, $z['reason'], 1, 1, 'C', $fill);
}
$pdf->Output();
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para ajustar automáticamente la altura de las celdas en fpdf, se puede utilizar el método MultiCell en lugar de Cell. MultiCell te permite especificar tanto el ancho como la altura de la celda, y ajusta automáticamente la altura para que se ajuste al contenido. Aquí tienes un ejemplo:

    $pdf->SetFont('Arial', 'B', 13);
    $pdf->SetLeftMargin(30);
    $pdf->SetFillColor(193, 229, 252);
    $pdf->Cell(15, 20, '', 0, 1, 'C');
    $pdf->Cell($width_cell[0], 10, 'Fecha', 1, 0, 'C', true);
    $pdf->Cell($width_cell[1], 10, 'Desde', 1, 0, 'C', true);
    $pdf->Cell($width_cell[2], 10, 'Hasta', 1, 0, 'C', true);
    $pdf->Cell($width_cell[3], 10, 'Motivo', 1, 1, 'C', true);
    $pdf->SetFont('Arial', '', 13);
    $fill = false;
    
    while ($z = $stmt->fetch(PDO::FETCH_ASSOC)) {
      $pdf->Cell($width_cell[0],10,date("d.m.Y", strtotime($z['date'])),1,0,'C',$fill);
      $pdf->Cell($width_cell[1],10,substr($z['startTime'], 0, 5) . ' Uhr',1,0,'C',$fill);
      $pdf->Cell($width_cell[2],10,substr($z['endTime'], 0, 5) . ' Uhr',1,0,'C',$fill);
      $pdf->MultiCell($width_cell[3],10,$z['reason'],1,'C',$fill);
    }
    
    $pdf->Output();
    

    En el bucle while, reemplazamos la última línea con MultiCell($width_cell[3],10,$z['reason'],1,'C',$fill), lo cual ajusta automáticamente la altura de la celda para que se ajuste al contenido de $z['reason']. Esto debería ayudar a mejorar la apariencia de tu PDF.

Comments are closed.