我正在使用FPDF创建PDF报告.现在,如何在页面底部的报表的每个页面上生成页码.以下是生成2页PDF的示例代码.
<?php
require('fpdf.php');
$pdf = new FPDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Arial','',16);
$start_x=$pdf->GetX();
$current_y = $pdf->GetY();
$current_x = $pdf->GetX();
$cell_width = 25; $cell_height=14;
$j = 20; // This value will be coming from Database so we dont know how many pages the report is going to be
for ($i = 0; $i<$j ; $i++){
$pdf->MultiCell($cell_width,$cell_height,'Hello1',1);
$current_x+=$cell_width;
$pdf->Ln();
}
$pdf->Output();
?>
Run Code Online (Sandbox Code Playgroud)
注意:$ j值将来自数据库,因此我们不知道报告将有多少页面.
Vip*_*oni 15
要添加纵向方向的A4页面,请执行以下操作:
$pdf->AddPage("P","A4");
Run Code Online (Sandbox Code Playgroud)
创建一个扩展FPDF类的新类,并覆盖预定义的Footer方法.
例:
class PDF extends FPDF
{
function Footer()
{
// Go to 1.5 cm from bottom
$this->SetY(-15);
// Select Arial italic 8
$this->SetFont('Arial','I',8);
// Print centered page number
$this->Cell(0,10,'Page '.$this->PageNo(),0,0,'C');
}
}
Run Code Online (Sandbox Code Playgroud)
Dwz*_*wza 15
根据我的评论你可以放置
$pdf->PageNo();
Run Code Online (Sandbox Code Playgroud)
在您喜欢的页面上.您还可以为此添加占位符
$pdf->AliasNbPages();
Run Code Online (Sandbox Code Playgroud)
会是什么样子
$pdf->AliasNbPages('{totalPages}');
Run Code Online (Sandbox Code Playgroud)
默认情况下,它是{nb}.没有必要添加占位符
比你可以添加像
$pdf->Cell(0, 5, "Page " . $pdf->PageNo() . "/{totalPages}", 0, 1);
Run Code Online (Sandbox Code Playgroud)
或者没有你自己的占位符
$pdf->Cell(0, 5, "Page " . $pdf->PageNo() . "/{nb}", 0, 1);
Run Code Online (Sandbox Code Playgroud)
这会产生例如
第1/10页
万一有10页:)
但要注意
使用占位符会弄乱单元格的宽度.因此,如果你有180页的页面宽度不超过90 (在你使用占位符的行中).你会看到你试试:)