web-dev-qa-db-fra.com

FPDF imprime MultiCell () de façon adjacente

J'ai cherché sur Google et j'ai trouvé cette question très courante, mais je n'arrive pas à trouver une réponse correcte et directe. J'utilise FPDF et je veux générer des tables à l'aide de MultiCell () car j'ai besoin de sa propriété de saut de ligne. Tried Cell () mais il ne peut pas lire le saut de ligne.

$col1="PILOT REMARKS\n\n";
$pdf->MultiCell(189, 10, $col1, 1, 1);
$col2="Pilot's Name and Signature\n".$name;
$pdf->MultiCell(63, 10, $col2, 1);
$pdf->Ln(0);
$col3="Date Prepared\n".$date;
$pdf->MultiCell(63, 10, $col3, 1);

Mais je ne peux pas le générer correctement car MultiCell () empile le résultat. Comment puis-je obtenir que MultiCell () soit imprimé de manière adjacente les uns des autres de la manière la plus simple et la plus facile?

Trouvé question similaire mais il ne fournit pas de réponse claire. Toute aide serait appréciée. Merci d'avance.

17
xjshiya

Essayez de stocker les coordonnées X et Y, puis de les définir après l'écriture

$x = $pdf->GetX();
$y = $pdf->GetY();

$col1="PILOT REMARKS\n\n";
$pdf->MultiCell(189, 10, $col1, 1, 1);

$pdf->SetXY($x + 189, $y);

$col2="Pilot's Name and Signature\n".$name;
$pdf->MultiCell(63, 10, $col2, 1);
$pdf->Ln(0);
$col3="Date Prepared\n".$date;
$pdf->MultiCell(63, 10, $col3, 1);
38
Danny

Juste pour ajouter à réponse de Danny . J'aime garder la largeur de chaque colonne stockée, puis l'utiliser lors de l'exécution de la méthode SetXY.

Exemple:

$x = $this->x;
$y = $this->y;
$Push_right = 0;

$this->MultiCell($w = 100,3,"Column\r\nNumber 1",1,'C',1);

$Push_right += $w;
$this->SetXY($x + $Push_right, $y);

$this->MultiCell($w = 60,3,"Column\r\nNumber 2",1,'C',1);

$Push_right += $w;
$this->SetXY($x + $Push_right, $y);

$this->MultiCell(0,3,"Column 3\r\nFilling in the Rest",1,'C',1);
6
mpickens

Vous pouvez utiliser la fonction SetXY (x, y) pour placer le curseur en pdf.

          $pdf->SetXY(x,y);

Placez le curseur pour imprimer les données en pdf

Où x est la valeur de l'axe des x et y est la valeur de l'axe des y

2
Abhishek

utilisez $pdf->Ln(10); avec $pdf->cell();

Exemple:

$pdf->cell(100,10,"your content");
$pdf->Ln(10);
0
user3035129