PDFレンダリング時のCSSページの区切り
IronPDFは標準のCSSページネーションルールを適用するため、HTMLに適切な宣言を追加することでページをどこで分割するか制御できます。 この例は、各テーブル行の後にページ区切りを強制します。
解決策
1. CSSに印刷ルールを追加する
ページネーションルールを<tr>にブレークを適用します。 レガシーbreak-afterの両方が互換性のために含まれていますが、ヘッダ行は通常通り流れるようにされています。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Page Break After Each Table Row</title>
<style>
table {
width: 100%;
border-collapse: collapse;
}
th, td {
border: 1px solid #333;
padding: 8px;
}
/* PRINT RULES */
@media print {
tr {
page-break-after: always; /* legacy */
break-after: page; /* modern */
}
thead tr {
page-break-after: auto;
break-after: auto;
}
}
</style>
</head>
<body>
<h2>Page Break After Every Row</h2>
<table>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Item One</td>
<td>This row will appear on its own page.</td>
</tr>
<tr>
<td>2</td>
<td>Item Two</td>
<td>This row will also appear on its own page.</td>
</tr>
<tr>
<td>3</td>
<td>Item Three</td>
<td>Every row starts a new page.</td>
</tr>
</tbody>
</table>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Page Break After Each Table Row</title>
<style>
table {
width: 100%;
border-collapse: collapse;
}
th, td {
border: 1px solid #333;
padding: 8px;
}
/* PRINT RULES */
@media print {
tr {
page-break-after: always; /* legacy */
break-after: page; /* modern */
}
thead tr {
page-break-after: auto;
break-after: auto;
}
}
</style>
</head>
<body>
<h2>Page Break After Every Row</h2>
<table>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Item One</td>
<td>This row will appear on its own page.</td>
</tr>
<tr>
<td>2</td>
<td>Item Two</td>
<td>This row will also appear on its own page.</td>
</tr>
<tr>
<td>3</td>
<td>Item Three</td>
<td>Every row starts a new page.</td>
</tr>
</tbody>
</table>
</body>
</html>
レンダリングされると、各ボディ行は自分のページに配置され、auto値を保持して余分なブレークを引き起こさないようにします。

2. 行がページをまたぐことを防ぐ
行を強制的に分断するのではなく、行をそのまま保持することが目的である場合は、強制ブレークをやめて代わりにpage-break-inside: avoidを使用してください。
tr {
page-break-inside: avoid; /* Prevent row from splitting */
page-break-after: auto;
}
auto値は自然なページネーションでブレークの場所を決定させます。

