FPDF A4纸张不打印最后一行

时间:2015-07-17 11:05:18

标签: php fpdf

我正在尝试在A4纸上打印行,无论行数。 行占据A4纸(297mm)的整个长度非常重要。

例:
因此,如果我想要4行,这意味着纸A4的整个长度除以4 并打印,使四行同样占据整张A4纸。 问题是最后一行打印在不同的纸张上 我不知道为什么? 有没有人有建议如何解决问题?

这是我的php代码:

<?php 

require('fpdf/fpdf.php');

class PDF extends FPDF {
}

$pdf = new PDF('P', 'mm', array(210, 297));

$pdf->SetFont('Arial', '', 8);
$pdf->AddPage();
$widhtMM = 210;

$pdf->SetMargins(0, 0, 0, 0);
$heightMM = 295;

$pdf->SetXY(0, 0);
$marginTop = 0;

$rows = 7;
$testo = '';

for($i = 0; $i < $rows; $i++) {

    $heightMM = 297 / $rows;

    if ($i == 0) {
        $marginTop = 0;
    } else {
        $marginTop += $heightMM;
    }

    $pdf->SetXY(0, $marginTop);
    $pdf->Cell($widhtMM, $heightMM, $heightMM, 'LRTB', 0, 'L', 0);
    $pdf->Ln();

}
$pdf->Output(); 
?>

1 个答案:

答案 0 :(得分:1)

您需要在添加页面之前设置自动分页符(默认情况下是2cm底部边距):

$pdf->SetAutoPageBreak(TRUE, 0);

http://www.fpdf.org/en/doc/setautopagebreak.htm

如果你稍微更改一下代码会更好:

$heightMM = 297 / $rows;

for($i = 0; $i < $rows; $i++) {

    $marginTop = $i*$heightMM;

    $pdf->SetXY(0, $marginTop);
    $pdf->Cell($widhtMM, $heightMM, $heightMM, 'LRTB', 0, 'L', 0);
    $pdf->Ln();

}