web-dev-qa-db-ja.com

FPDFはMultiCell()を隣接して印刷します

私はグーグルで調べて、この質問は非常に一般的であるとわかりましたが、適切で直接的な答えを見つけることができないようです。私はFPDFを使用していますが、MultiCell()を使用してテーブルを生成したいのは、その改行プロパティが必要だからです。 Cell()を試しましたが、改行を読み取ることができません。

$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);

しかし、MultiCell()が結果をスタックするため、適切に生成できません。 MultiCell()を最も単純で簡単な方法で互いに隣接して印刷するにはどうすればよいですか?

これを見つけました 類似の質問 しかし、明確な答えを提供しません。任意の助けをいただければ幸いです。前もって感謝します。

17
xjshiya

X座標とY座標を保存し、書き込み後にそれらを設定してみてください

$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

Danny's answer に追加するだけです。各列の幅を保存しておき、SetXYメソッドを実行するときにそれを使用するのが好きです。

例:

$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

SetXY(x、y)関数を使用して、pdfにカーソルを設定できます。

          $pdf->SetXY(x,y);

PDFでデータを印刷するようにカーソルを設定します

Xはx軸の値、yはy軸の値

2
Abhishek

$pdf->Ln(10);とともに$pdf->cell();を使用します

例:

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