我刚刚完成了一个生成 PDF 格式发票的 PHP 脚本的工作。我为此使用了 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();
有任何想法吗?