浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

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

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の描画がうまくいかない…という方は是非試してみてください。

  • この記事いいね! (1)