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();
?>
注:$ jの値はデータベースから取得されるため、レポートのページ数はわかりません。
縦向きでA4ページを追加するには、次のようにします。
$pdf->AddPage("P","A4");
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');
}
}
私のコメントによると、あなたは置くことができます
$pdf->PageNo();
ページの好きな場所に。これにプレースホルダーを追加することもできます
$pdf->AliasNbPages();
どのように見えるでしょう
$pdf->AliasNbPages('{totalPages}');
デフォルトでは{nb}です。プレースホルダーを追加する必要はありません
次のようにページサムを追加するよりも
$pdf->Cell(0, 5, "Page " . $pdf->PageNo() . "/{totalPages}", 0, 1);
またはあなた自身のプレースホルダーなし
$pdf->Cell(0, 5, "Page " . $pdf->PageNo() . "/{nb}", 0, 1);
これにより、たとえば.
ページ1/10
10ページあった場合:)
しかし注意してください
プレースホルダーを使用すると、セルの幅が乱れます。したがって、たとえば90より大きい180ページ幅はもう中間ではありません((placeholderを使用する行)。試してみるとわかります:)