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