Laravel6.xでBladeでHTMLを作成し、TCPDFを使用してPDFへ変換する処理を作成しています。
具体的にはTCPDFの初期設定を行った後に、最低1ページ(ページ内リストは10件)は生成し、
以降は10件を越えれば2枚目、3枚目と改ページしていく仕様を想定しるのですが、
何故か複数ページ生成された場合に表題の通りとなってしまいます。
一部投稿用に省略・編集していますが、表題処理部分のソースは下記になり、主にAddPage()
で改ページをして、
$view->toHtml()
で作成したHTMLをwriteHTML()
で書き出し、最後にOutput()
で出力しております。
尚、下記処理クラスのプロパティとして、$pdf
にTCPDF
を継承したFpdi
を格納しています。
環境は以下の通りです。
PHP7.4.19
Laravel6.20.24
fpdi-tcpdf ^2.3
解る方がおられましたら、御連絡頂けると幸いです。
宜しくお願い致します。
PHP
1 $this->pdf->SetMargins(0, 5, 0); 2 $this->pdf->setFooterMargin(10); 3 $this->pdf->SetCellPadding(0); 4 $this->pdf->SetAutoPageBreak(false); 5 $this->pdf->setPrintHeader(false); 6 $this->pdf->setPrintFooter(false); 7 $this->pdf->SetTitle($this->title); 8 $this->pdf->SetFont('kozminproregular'); 9 10 // これがデータ群であり、10件毎にチャンクとして分割しています 11 $chunks = $data->chunk(10); 12 13 /** 14 * 1ページ目 15 */ 16 $this->pdf->AddPage('L', 'A4'); 17 $view = view('tests.pdf', [ 18 // Blade側で使用する代入データ群 19 ]); 20 $this->pdf->writeHTML($view->toHtml()); 21 22 /** 23 * 2ページ目以降 24 */ 25 foreach ($chunks as $index => $chunk) { 26 if ($index === 0) continue; 27 28 $this->pdf->AddPage('L', 'A4'); 29 $view = view('tests.pdf', [ 30 // Blade側で使用する代入データ群 31 ]); 32 $this->pdf->writeHTML($view->toHtml()); 33 } 34 35 $this->pdf->Output($this->filename, 'I');
あなたの回答
tips
プレビュー