2013-10-30 47 views
1

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

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

下面这个简单的代码,我使用的生成与背景的三页的PDF。测试时,第1页和第2页底部有10个像素的空白,而最后的第3页没有。 设置图像时,从GetX和GetY中减去10个像素,直接将图像定位在左上角。我在每次添加页面后var_dump 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,以及禁止与0

底边距例如打破了汽车页:

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

SetMargins默认的左/上/右页边距为1厘米, SetAutoPageBreak默认为true,底边距为2厘米。

0

您不必手动添加页面。 用0余量设置自动分页符真实:

$pdf->SetAutoPageBreak(true,0);