0

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

由于某种原因,for 循环跳过了第一行(单元格 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();
?>

问题

我盯着代码看了好几个小时,但找不到答案,因此不胜感激。

4

2 回答 2

3

您的第一组印刷品浮在右侧。作为快速修复尝试添加换行符并清除 PDF 定义中不需要的浮点数。

添加

$pdf->Ln();

$pdf->AddPage();
于 2013-04-29T20:13:21.563 回答
0

我看到您可能想要检查的两种可能性。首先是边距全部为零,但为了使 PDF 正确打印或保存,它们需要在顶部/底部为 1 英寸,在侧面为 0.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();
    }
}
于 2013-04-29T20:03:40.273 回答