Dompdf:强制 table 行拆分为 2 页
Dompdf: Force table row to split across 2 pages
我正在使用 "dompdf/dompdf": "^0.8.3" 进行 PDF 打印。
我有一个简单的 table,其中的行 tds 具有大文本内容...例如:
<!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>
当我使用 A4 尺寸的页面打印时,我想在可用 space 的第一页打印第 4 行的一部分,然后在下一页继续打印其余文本页。但似乎所有第 4 行都移到了第二页。有什么办法可以根据我的要求强制执行此操作(使用 css 或通过 dompdf 设置)?
我尝试了以下 css 分页符:
table {
page-break-inside: auto;
}
table tr {
page-break-inside: auto;
}
table tr td {
page-break-inside: auto;
}
但他们从来没有帮助我将一行分成两页。
感谢您的快速反馈..
干杯!!
Dompdf(目前 post 为 0.8.3)不支持跨页拆分 table 行。这是 Dompdf 的 long-standing 问题(参考 https://github.com/dompdf/dompdf/issues/98)。
如果您的特定内容遵循您提供的示例,则看起来并不需要 table 结构,因为它每行只有一个单元格。您可以使用简单的 DIV 元素很好地复制结构。
唯一的问题是 table header。如果示例真正反映了您的输出,您可以改用页面 header。
大致如下:
<!DOCTYPE html>
<html>
<head>
<style>
@page { margin-top: 50px; }
#header { position: fixed; top: -50px; left: 0px; right: 0px; padding: 10px; text-align: center; font-weight: bold; }
</style>
</head>
<body>
<div id="header">
PRODCUT
</div>
<div>
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 --
</div>
</body>
</html>
如果需要table结构并且不能用div替换,那么也许可以将数据转换成最大大小的块,然后为每个块显示一行及其内容,并在每个之前分页除第一个之外的块。
我正在使用 "dompdf/dompdf": "^0.8.3" 进行 PDF 打印。
我有一个简单的 table,其中的行 tds 具有大文本内容...例如:
<!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>
当我使用 A4 尺寸的页面打印时,我想在可用 space 的第一页打印第 4 行的一部分,然后在下一页继续打印其余文本页。但似乎所有第 4 行都移到了第二页。有什么办法可以根据我的要求强制执行此操作(使用 css 或通过 dompdf 设置)?
我尝试了以下 css 分页符:
table {
page-break-inside: auto;
}
table tr {
page-break-inside: auto;
}
table tr td {
page-break-inside: auto;
}
但他们从来没有帮助我将一行分成两页。
感谢您的快速反馈..
干杯!!
Dompdf(目前 post 为 0.8.3)不支持跨页拆分 table 行。这是 Dompdf 的 long-standing 问题(参考 https://github.com/dompdf/dompdf/issues/98)。
如果您的特定内容遵循您提供的示例,则看起来并不需要 table 结构,因为它每行只有一个单元格。您可以使用简单的 DIV 元素很好地复制结构。
唯一的问题是 table header。如果示例真正反映了您的输出,您可以改用页面 header。
大致如下:
<!DOCTYPE html>
<html>
<head>
<style>
@page { margin-top: 50px; }
#header { position: fixed; top: -50px; left: 0px; right: 0px; padding: 10px; text-align: center; font-weight: bold; }
</style>
</head>
<body>
<div id="header">
PRODCUT
</div>
<div>
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 --
</div>
</body>
</html>
如果需要table结构并且不能用div替换,那么也许可以将数据转换成最大大小的块,然后为每个块显示一行及其内容,并在每个之前分页除第一个之外的块。