如何在laravel dompdf中添加页码?

时间:2016-12-20 06:27:24

标签: php laravel pdf laravel-5.3 dompdf

我添加$pdf->set_option('isPhpEnabled', true);是这样的:

public function listdata()
{
    $data = User::all();

    $pdf=PDF::loadView('print_tests.test_pdf', ['data' => $data]);
    $pdf->set_option('isPhpEnabled', true);
    $pdf->setPaper('L', 'landscape');
    return $pdf->stream('test_pdf.pdf');
}

在正文(视图)中我添加如下:

<script type="text/php">
    if ( isset($pdf) ) {
        // OLD 
        // $font = Font_Metrics::get_font("helvetica", "bold");
        // $pdf->page_text(72, 18, "{PAGE_NUM} of {PAGE_COUNT}", $font, 6, array(255,0,0));
        // v.0.7.0 and greater
        $x = 72;
        $y = 18;
        $text = "{PAGE_NUM} of {PAGE_COUNT}";
        $font = $fontMetrics->get_font("helvetica", "bold");
        $size = 6;
        $color = array(255,0,0);
        $word_space = 0.0;  //  default
        $char_space = 0.0;  //  default
        $angle = 0.0;   //  default
        $pdf->page_text($x, $y, $text, $font, $size, $color, $word_space, $char_space, $angle);
    }
</script>

存在这样的错误:

FatalThrowableError in PrintTestController.php line 21: Call to undefined method Barryvdh\DomPDF\PDF::set_option()

注意:

我使用barryvdh / laravel-dompdf“:”^ 0.7.0“(v0.7)

有没有人可以帮助我?

1 个答案:

答案 0 :(得分:0)

请使用setOptions()代替set_option()

public function listdata()
{
  $data = User::all();

  $pdf = PDF::loadView('print_tests.test_pdf', ['data' => $data]);
  $pdf->setOptions(['isPhpEnabled' => true]);
  $pdf->setPaper('L', 'landscape');
  return $pdf->stream('test_pdf.pdf');
}

和页码,

  1. 首先请不要使用<script type="text/php"> ...
  2. 之类的东西
  3. 没有page_text这样的功能,也没有将$ pdf传递给视图,而是数据。
  4. 可以添加页码的唯一方法是使用page-breaks

    <style>
    .page-break {
        page-break-after: always;
    }
    </style>
    

    将其添加到您的视图中,然后自己将页码添加为文本。