-1

mysql データベースから pdf ファイルにデータを適切に配置したい。しかし、私が得た結果は私が望むものではありません。他の列と整列させたいときに、最後の列が他の列の下に来るだけです。私はこのようなことを試しました。

while (ob_get_level())
ob_end_clean();
header("Content-Encoding: None", true);




$host="localhost";
$user="root";
$password="";
$db_name="pdf_test";
$conn=mysql_connect($host,$user,$password) or die("cannot connect to the  
database".mysql_error());
mysql_select_db($db_name,$conn)or die("cannot select the database".mysql_error());


include('fpdf.php');

$q=mysql_query("select * from education_mailstone");
$number_of_persons=mysql_num_rows($q);

//initialize the 4 columns and the total
$column_name="";
$column_school="";
$column_year="";
$column_score="";

//For each row add field to the specific column
while($row=mysql_fetch_array($q)){
$name=$row['name'];
$school=$row['school'];
$year=$row['year'];
$score=$row['score'];


$column_name=$column_name.$name."\n";
$column_school=$column_school.$school."\n";
$column_year=$column_year.$year."\n";
$column_score=$column_score.$score."\n";
}



$pdf=new FPDF();
$pdf->AddPage();
$Y_Fields_Name_position=20;
$Y_Table_position=26;
$pdf->SetFillColor(232,232,232);
$pdf->SetFont('Arial','B',12);
$pdf->SetY($Y_Fields_Name_position);
$pdf->SetX(10);
$pdf->Cell(400,6,'NAME OF STUDENT',1,0,'L',1);
$pdf->SetX(60);
$pdf->Cell(400,6,'NAME OF THE SCHOOL',1,0,'L',1);
$pdf->SetX(120);
$pdf->Cell(400,6,'COMPLETION YEAR',1,0,'L',1);
$pdf->SetX(180);
$pdf->Cell(50,6,'SCORE',1,0,'L',1);
$pdf->Ln();
$pdf->SetFont('Arial','',12);
$pdf->SetY($Y_Table_position);
$pdf->SetX(10);
$pdf->MultiCell(400,6,$column_name,1);
$pdf->SetY($Y_Table_position);
$pdf->SetX(60);
$pdf->MultiCell(400,6,$column_school,1);
$pdf->SetY($Y_Table_position);
$pdf->SetX(120);
$pdf->MultiCell(400,6,$column_year,1);
$pdf->SetX(180);
$pdf->MultiCell(50,6,$column_score,1);
$pdf->Ln();
$i = 0;
$pdf->SetY($Y_Table_position);
while ($i < $number_of_persons)
{
    $pdf->SetX(10);
    $pdf->MultiCell(120,6,'',1);
    $i = $i +1;
}
$pdf->Output();

だから私は間違っていますか?

4

1 に答える 1

0

見出しが横に並んでいて、名前と詳細が下の列に並んでいる表を作成しようとしていますか?

もしそうなら、なぜ各セルを 400mm の幅に設定しているのかわかりません $pdf->Cell(400,6,'NAME OF STUDENT',1,0,'L',1);

SetX 関数でセルの幅を 60mm にしようとしているように見えますか? コードを $pdf->Cell(60,6,'NAME OF STUDENT',1,0,'L',1); の代わりにこれを行う理由はありますか? このようにして、後で毎回 setX を設定する必要がなくなり、次のセル 'NAME OF SCHOOL' がこのセルの右側に自動的に整列するはずですか?

次に、マルチセルの場合、実際にはこれの幅を 60 にする必要があります $pdf->MultiCell(60,6,$column_school,1);

これがまったく役に立たない場合は、現在表示されているもののリンクをアップロードしていただけますか。

FPDF の使用に関する基本的な情報については、最近、FPDF の基本に関するブログを書きました。

http://www.limelightonline.co.nz/blog/create-dynamic-pdf-with-php-tutorial/

これがあなたを助けるかもしれないかどうかわかりませんか?

ありがとう、シェイ。

于 2013-05-01T04:09:52.477 に答える