web-dev-qa-db-ja.com

PDF mpdfを使用してヘッダーとフッターを設定したい

CodeIgniterのmpdfライブラリを使用してPDFを生成しました。適切なマージンでヘッダー画像とフッター画像を添付したいのですが、1つのコードを作成しましたが、ヘッダーとフッターが重複しています。

//controller
$this->load->library('m_pdf');
    $param = '"","A4","","",0,0,100,0,6,3,"L"';
    $pdf = $this->m_pdf->load($param);
    // $pdf->useOddEven = true;

    $pdf->SetHTMLHeader('<img src="' . base_url() . 'custom/Hederinvoice.jpg"/>');

    $pdf->SetHTMLFooter('<img src="' . base_url() . 'custom/footarinvoice.jpg"/>');
    $wm = base_url() . 'custom/Watermark.jpg';
    $pdf->SetWatermarkImage($wm);
    $pdf->showWatermarkImage = true;
      $data['main_content'] = 'dwnld';
    $this->load->view('template', $data);
    $html = $this->load->view('template_pdf', $data, true);
    $this->load->view('template_pdf', $data, true);
    $pdf->WriteHTML($html);
    $pdf->page = 0;
    $pdf->state = 0;
    $pdf->Output($pdfFilePath, "D");

enter image description here

5
 $pdf->SetHTMLHeader('<img src="' . base_url() . 'custom/Hederinvoice.jpg"/>');

    $pdf->SetHTMLFooter('<img src="' . base_url() . 'custom/footarinvoice.jpg"/>');
    $wm = base_url() . 'custom/Watermark.png';

      $data['main_content'] = 'dwnld';
    //$this->load->view('template', $data);
    $html = $this->load->view('template_pdf', $data, true);
    $this->load->view('template_pdf', $data, true);
    $pdf->AddPage('', // L - landscape, P - portrait 
        '', '', '', '',
        5, // margin_left
        5, // margin right
       60, // margin top
       30, // margin bottom
        0, // margin header
        0); // margin footer
    $pdf->WriteHTML($html);

    $pdf->Output($pdfFilePath, "D");

Mpdfでページを作成するためのページを追加し、マージンの上部、下部のパラメーターを渡すと、適切な出力が得られます

11

以下のように、最初のページとその他のページにカスタムHTMlヘッダーを設定できます。すべてのhtmlコンテンツの上に以下のスニペットを追加するだけです。 al htmlの上のタグを使用して、インラインCSSを追加できます。

              <htmlpageheader name="firstpage" style="display:none">
              <div style="text-align:center"><img src="'.'logo.png"/></div>
              </htmlpageheader><sethtmlpageheader name="firstpage" value="on" show-this-page="1" />
              <htmlpageheader name="otherpages" style="display:none">
              <div style="text-align:center">{PAGENO}</div>
              </htmlpageheader><sethtmlpageheader name="otherpages" value="off" />';

または、HTMLヘッダー関数を使用するための参照として https://mpdf.github.io/headers-footers/headers-footers.html を使用できます

フッターを設定するには、次のものを使用できます。

// Footer Configuration for all pages, can be changed for odd and even pages accordingly
$oddEvenConfiguration = 
            [
                'L' => [ // L for Left part of the header
                'content' => 'Your Content',
                'font-size' => 10,
                'font-family' => 'sans-serif',
                'color'=>'#000000'
                ],
                'C' => [ // C for Center part of the header
                'content' => '',
                ],
                'R' => [
                    'content' => '{PAGENO}',
                ],
                'line' => 0, // That's the relevant parameter to remove line style in footer
            ];

$headerFooterConfiguration = [
    'odd' => $oddEvenConfiguration,
    'even' => $oddEvenConfiguration
];
0