Dompdfでテーブルを使用した際、改ページするとレンダリングが壊れる問題を解決する方法

  • 2021年2月11日
  • 2021年2月11日
  • PHP

PHP上でhtmlをPDFファイルに変換してくれるライブラリ、”Dompdf”。

非常に便利なので重宝するのですが、レンダリングに癖があり、比較的新しめなcssプロパティを使用したり、複雑なDOMを書いたりすると、レイアウトが崩れたり、期待したとおりに表示されなかったりすることがあります。

そのレイアウト崩れの一例で、table要素をdompdfに描画させた際、テーブルの途中で改ページが入ると、下の画像のように崩れてしまうことがあります。

原因はテーブルの途中で改ページが入っていることなので、cssで要素途中で改ページが入らないように指定をすると回避することができます。

//描画が崩れる指定(ダメな指定)
body {
  page-break-before: always;
}
body {
  page-break-after: always;
}

//描画崩れを回避する指定(成功)
body {
  page-break-inside: avoid;
}

Dompdfでtableの描画がうまくいかない…という方は是非試してみてください。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG