带有 FPDF 的页面底部的空格


Whitespace at bottom of pages with FPDF

我刚刚完成了一个PHP脚本的工作,该脚本可以生成PDF格式的发票。为此,我使用了FPDF。PDF 的每一页都有一个图像作为背景。这是一张 793x1113 像素大小的单张图像,经过一些尝试和错误,我发现像素完美地填满了整个页面。在列出产品的循环中,我检查 Y 位置的值。如果太高,我添加另一个页面,再次绘制背景图像,并将 Y 位置设置在正确的点以继续列表。一切都很好,除了一个小问题:除了最后一页之外,在每一页上,背景图像下方添加了大约 10 像素的空白,使布局看起来不对。

这个问题似乎与我在整个脚本中添加的任何文本内容无关,因为当我简单地添加几个空白页时,会发生完全相同的情况。我想这是标准空格,每当添加新页面时都会插入。我能做些什么来摆脱它,让一切无缝衔接?

下面是我用来生成带有背景的三页 PDF 的简单代码。测试时,第 1 页和第 2 页的底部有 10 个像素的空白,而最后的第 3 页则没有。设置图像时从 GetX 和 GetY 中减去的 10 个像素将图像直接定位在左上角。我在每次添加页面后都var_dumped Y 位置,但这始终是完全相同的值,所以这也不是问题。

$pdf = new FPDF();
$background = '../data/images/pdf/fullbackground.png';
$pdf->AddPage();
$pdf->Cell( 0, 0, $pdf->Image($background, $pdf->GetX() - 10, $pdf->GetY() - 10, 0), 0, 0, 'L', false );
$pdf->AddPage();
$pdf->Cell( 0, 0, $pdf->Image($background, $pdf->GetX() - 10, $pdf->GetY() - 10, 0), 0, 0, 'L', false );
$pdf->AddPage();
$pdf->Cell( 0, 0, $pdf->Image($background, $pdf->GetX() - 10, $pdf->GetY() - 10, 0), 0, 0, 'L', false );
$pdf->Output();
die();

有什么想法吗?

尝试将边距设置为 0,并禁用下边距为 0 的自动分页功能。

例如:

$pdf->SetMargins(0,0,0);
$pdf->SetAutoPageBreak(false,0);

SetMargins 默认左/上/右边距为 1 厘米,设置自动分页默认为 true,下边距为 2 厘米。

您不必手动添加页面。将自动分页符设置为 true,边距为 0:

$pdf->SetAutoPageBreak(true,0);