'Dompdf: Force table row to split across 2 pages
I am using "dompdf/dompdf": "^0.8.3" for PDF print.
I have a simple table with rows tds with big text content... For ex:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<table>
<thead>
<tr>
<th>PRODUCT</th>
</tr>
</thead>
<tbody>
<tr>
<td>1-----
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
</td>
</tr>
<tr>
<td>2-----
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
</td>
</tr>
<tr>
<td>3-----
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
</td>
</tr>
<tr>
<td>4-----
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
</td>
</tr>
<tr>
<td>5-----
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
</td>
</tr>
</tbody>
</table>
</body>
</html>
When I print it using A4 size page, I would like to have a part of 4th row print in the first page in the available space and then continue to print the rest of the text in the next page. But it seems that all of the 4th row is moved to the second page. Is there any way to force this (using css or through a dompdf setting) as per my requirement?
I have tried the following css for the page breaks:
table {
page-break-inside: auto;
}
table tr {
page-break-inside: auto;
}
table tr td {
page-break-inside: auto;
}
But they never have helped me to split a row between 2 pages.
Thanks for your quick feedback..
Cheers!!
Solution 1:[1]
If table structure is needed and cannot replace with divs, then maybe one could transform the data into chunks of max size, and then for each chunk display a row with its contents, and break page before each chunk except the first one.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Mariana Marica |

