我刚刚完成了一个生成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();
有任何想法吗?
2 回答
尝试将边距设置为0并禁用自动分页,下边距为0 .
例如:
SetMargins默认左/上/右边距为1厘米,SetAutoPageBreak默认为真,下边距为2厘米 .
您不必手动添加页面 . 将自动分页设置为0,保证金为0: