如何改善FPDF中的渲染?

时间:2013-05-18 14:27:45

标签: php mysql fpdf

<?php

$factuurnr = $_GET['factuurnr'];



require('fpdf/fpdf.php');

//Connect to your database
include("db_connect.php");

//Create new pdf file
$pdf=new FPDF();

//Open file
$pdf->Open();

//Disable automatic page break
$pdf->SetAutoPageBreak(false);

//Add first page
$pdf->AddPage();

//set initial y axis position per page
$y_axis_initial = 25;

//print column titles for the actual page
$pdf->SetFillColor(232, 232, 232);
$pdf->SetFont('Arial', 'B', 12);
$pdf->SetY($y_axis_initial);
$pdf->SetX(25);
$pdf->Cell(30, 6, 'klantnummer', 1, 0, 'L', 1);
$pdf->Cell(100, 6, 'factuurnummer', 1, 0, 'L', 1);
$pdf->Cell(30, 6, 'bedrag', 1, 0, 'R', 1);

$y_axis = $y_axis + $row_height;

//Select the Products you want to show in your PDF file
 $query="SELECT * FROM facturen WHERE factuurnummer = '$factuurnr'";
 $result=mysql_query($query);



 //initialize counter
 $i = 0;

//Set maximum rows per page
$max = 25;

//Set Row Height
$row_height = 6;

while($row = mysql_fetch_array($result))
{
//If the current row is the last one, create new page and print column title
if ($i == $max)
{
    $pdf->AddPage();

    //print column titles for the current page
    $pdf->SetY($y_axis_initial);
    $pdf->SetX(25);
    $pdf->Cell(30, 6, 'klantnummer', 1, 0, 'L', 1);
    $pdf->Cell(100, 6, 'factuurnummer', 1, 0, 'L', 1);
    $pdf->Cell(30, 6, 'bedrag', 1, 0, 'R', 1);

    //Go to next row
    $y_axis = $y_axis + $row_height;

    //Set $i variable to 0 (first row)
    $i = 0;
}

$klantnummer = $row['klantnummer'];
$factuurnummer = $row['factuurnummer'];
$bedrag = $row['bedrag'];

$pdf->SetY($y_axis);
$pdf->SetX(25);

$pdf->Cell(30, 6, $klantnummer, 1, 0, 'L', 1);
$pdf->Cell(100, 6, $factuurnummer, 1, 0, 'L', 1);
$pdf->Cell(30, 6, $bedrag, 1, 0, 'R', 1);

//Go to next row
$y_axis = $y_axis + $row_height;
$i = $i + 1;
}

mysql_close;

//Create file
$pdf->Output();
?>

我正在尝试使用fpdf生成带有MySQL信息的pdf。说实话,它正在工作,但是渲染已经完成,而且我对fpdf来说太新了,无法解决这个问题。

来自MySQL的数据会在表头上方呈现,我不知道为什么。

1 个答案:

答案 0 :(得分:1)

可能你的初始$ y_axis错误。 试试这个:

$y_axis = $y_axis_initial + $row_height;

我认为你应该替换3'$ y_axis = ...'行中的2行(最后一行是OK)。