印刷用のページってどうやって作るのがいいんだろう? PDF? HTMLでもいいの? ってことで HTML でかきはじめてました。

キャプションと表をひとくくりにしたかったのですが、そのままだと表の途中で改ページされてしまうのは具合が悪くてなんとしたい。 ひとつの表はページを跨いで欲しくない。

CSSで改ページを制御するには page-break-insideavoid にしてやればよいらしいです。 なので以下のようなHTMLを用意して、

<div class="block">
  <h1>表の説明</h1>
  <table>
    <tr>
      ...
    </tr>
  </table>
</div>

CSSを以下のように用意すると期待したとおりになりました。

.block {
   page-break-inside: avoid;
}