プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
mPDF、ページヘッダ、ページフッタを付ける。
帳票系だと全ページ固定のヘッダ、フッタを出したいときがあるわけです。
例えばなんちゃら伝票の伝票名とかですね。

mPDFさんならそんなのもちょちょいのちょいですよね~(人´∀`)と
ゴマをすりつつ探したらやっぱりありました。

結論から言えば

■ページヘッダ
$pdf->SetHTMLHeader(ページヘッダに設定したいHTML);

■ページフッタ
$pdf->SetHTMLFooter(ページフッタに設定したいHTML);

でOKです。

実際のコードは例えばこんな感じφ(--)

<?php
    //mPDF読み込み
    require_once(dirname(__FILE__) . '/lib/pdf/mpdf.php');

    //mPDFインスタンス生成
    $pdf=new mPDF('sjis','A4-L','','',10,10,57,10,10,10);

    //ページヘッダ設定
    $header = '<p style="color: #00f">headerだよ</p>';
    @$pdf->SetHTMLHeader($header);        //odd
    @$pdf->SetHTMLHeader($header,'E');    //even

    //ページフッタ設定
    $footer = '<p style="color: #f00">footerだよ</p>';
    @$pdf->SetHTMLFooter($footer);        //odd
    @$pdf->SetHTMLFooter($footer,'E');    //even


    //取りあえず3ページくらい出力してみましょうか
    for($i = 1; $i <= 3; $i++){
        //改ページ
        if($i != 1){
            $pdf->AddPage();
        }

        //中身出力
        $main = '<p>中身だよ(' . $i . 'ページ目)</p>';
        @$pdf->WriteHTML($main);
    }

    @$pdf->Output("test.pdf", "I");

?>

これで青文字の「headerだよ」と赤文字の「footerだよ」が全ページについたPDFになります。

@$pdf->SetHTMLHeader($header);        //odd
@$pdf->SetHTMLHeader($header,'E');    //even

のように2回設定しているのは偶数ページ用と奇数ページ用……なのですが、
手元にあるバージョンだとevenの方を設定しないで

@$pdf->SetHTMLHeader($header);

だけでも全ページにヘッダ、フッタくっつきました。
なんででしょ(--ゞ

まぁサンプルが偶数ページ用と奇数ページ用に2回設定していたので真似てあります。
本体のバージョンアップとかを考えると、一応サンプルに合わせておいた方が無難ですしね。

当たり前ですがヘッダ、フッタはHTMLを指定できます。
またHTMLの組み方によってはヘッダ部分と中身が重なっちゃうときがあります。
その場合は上部の余白をうまいこと調整してください。

そんな感じ(--)ノ
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:mPDF  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事