2017-06-15 3 views
1

私はFPDFを使ってmySqlテーブルからデータを取得するテーブルを使ってpdfを作成しています。FPDF MultiCell - SetYの問題を使用してテーブルデータを隣接して設定する

私はテーブル見出しを動的に作成しています。今問題は、whileループでSetXYを使用すると実行が停止することです。そして私は、SETXを使用する場合にのみ、それは私がPDFファイルをダウンロードすることができます。ここで

enter image description here

画像の下には、私のコード

$pdf = new FPDF('P','mm',array(500,600)); 

$pdf->SetAutoPageBreak(true, 0); 
$pdf->AliasNbPages(); 

$pdf->AddPage(); 

$pdf->SetFont('Arial','B',12);  
$w = 100; 
$x = $pdf->GetX(); 

$y = $pdf->GetY(); 

$pdf->MultiCell($w,12,"Rec No",1,-1); 
$pdf->SetXY(($x+$w),$y); 
$x = ($x+$w); 
foreach($columns as $heading) { 

$pdf->MultiCell($w,12,$heading,1,-1); 
$pdf->SetXY(($x+$w),$y); 
$x = ($x+$w); 
} 
$pdf->ln(); 
$i=1; 

$result2 = mysqli_query($conn, $sql); 
$x = $w; 

while($rows = mysqli_fetch_array($result2)) { 
$pdf->SetFont('Arial','',12); 

$pdf->MultiCell($w,12,$i,1,1); 

$pdf->SetX(($x+10)); 

$x = ($x+$w); 
foreach($columns as $column) 
{ 
$pdf->MultiCell($w,12,$rows[$column],1,1); 

$pdf->SetX($x+10); 
$x = ($x+$w); 

} 
$x = $w; 
$pdf->ln(); 
if(($i%41) == 0) 
{ 

$pdf->SetFont('Arial','B',12); 
$pdf->MultiCell(20,12,"Rec No",1); 
$pdf->SetX($x+10); 


foreach($columns as $heading) { 

$pdf->MultiCell(100,12,$heading,1); 


} 
$pdf->ln(); 
} 

$i++; 
$pdf->Ln($y); 
} 
$pdf->Output('Civil Data.pdf','D'); 

である私は、マルチセルの例については、ほぼ3時間を調査し、いくつかを発見したように見えますソリューションもあります。

すべてのソリューションで、列を横に並べるようにXとYの位置を設定します。

SetXYを使用して位置を設定しようとしましたが、テーブルの見出しを並べて設定することに成功しました。しかし、データの場合、私はSetXYを使用すると動作しません。私はSetXだけではないSetXを使用すると、pdfをダウンロードできます。

それは私がwhileループでSetXY($ X + $ $、W y)を入れて試してみました

ループ間にY位置の設定で実行を停止しますが、それは実行を停止し、私はPDFファイルをダウンロードしましょうdoesntの。

ご協力いただきますようお願い申し上げます。事前に

おかげで、

レーナ

答えて

0

それはあなたが行に新しいセルを追加するたびにあなたはforeachの中で組み合わせてそれをすべて入れての$ x位置にSETYを追加していることのように見えますループ。

これを回避する方法の1つは、SetXとSetYを別々にして、ループ外にSetYを置くことです。

また、MultiCellの代わりにCellを使用して、列を処理し、レイアウトを制御することもできます。

関連する問題