我写了一个简单的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();
?>
我盯着代码几个小时,但我找不到答案,所以感谢任何帮助。
答案 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();
}
}