FPDF跳过第一行

时间:2013-04-29 19:56:47

标签: php fpdf

我写了一个简单的FPDF代码,但我遇到了一个问题。

出于某种原因, for loop 会跳过第一行(单元格1,单元格2,单元格3)。

代码:

<?php
require('temp/fpdf.php');

class PDF extends FPDF
{
    function Header(){
        $this->SetY(0);
        $this->SetFont('Arial','I',8);
        $this->Cell(0,5,'Page '.$this->PageNo(),0,0,'C');
    }

    function Footer(){
        $this->SetY(-5);
        $this->SetFont('Arial','I',8);
        $this->Cell(0,5,'Page '.$this->PageNo(),0,0,'C');
    }
}

$pdf = new PDF();
$pdf->SetMargins(0,0,0);
$pdf->AddPage();
$pdf->SetFont('Times','',12);
for($i=0;$i<=24;$i++){
    $pdf->Cell(70,30,'Printing line number '.$i,0,0,'C');

    if(($i%3==0)&&($i!=0)){
        $pdf->Ln();
    }
}

$pdf->Output();
?>

Problem

我盯着代码几个小时,但我找不到答案,所以感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

您的第一套打印浮动到右侧。作为快速修复尝试添加以添加换行符并清除PDF定义中不需要的浮动。

添加

$pdf->Ln();

$pdf->AddPage();

答案 1 :(得分:0)

我看到你可能想要检查的两种可能性。第一个是边距全部为零,但为了正确打印或保存PDF,它们需要在顶部/底部为1“,在侧面为.5”。此外,你必须考虑你的循环$ i的第一次迭代将等于0,你的第一个单元格将打印出0而不是1.让我知道如果这不会成功,我可以提供更多帮助。我实际上正处于一个巨大的FPDF项目中,并且发现了许多细微差别。

我刚注意到这一点:

if(($i%3==0)&&($i!=0)){
    $pdf->Ln();
}

使用此http://calculator.sdsu.edu/calculator.php使用$ i值计算模数,您将看到0%3 = 0,1%3 = 4,2%3 = 5。这将跳过你的第一行。

我个人会这样写的:

$i = 1;
while($i <=25)
{
    $pdf->Cell(70,30,'Printing line number '.$i,0,0,'C');

    if(($i % 3) == 0)
    {
        $pdf->Ln();
    }
}