我正在尝试将包含单个表(其td
包含图像或文本(的html页面转换为pdf。我使用weasyprint
作为python模块。
我的问题是黄页打印在列的中间插入分页符,这是我不希望的。
我想做的是:
- 重新缩放页面以适应页面高度
- 更改页面高度以适应内容的高度
表的大小(行/列的数量(是可变的(我事先不知道(。
我尝试过的事情:
1
我尝试使用css page.size属性来更改页面大小,但它不起作用,因为我事先不知道表的大小。
2
我尝试添加以下
body html{
height: 100%;
}
并添加了很多display:block
,但这些只是让滚动条出现,它不会根据需要调整内容的大小。
3
我尝试使用限制分页符
table {
break-inside: avoid;
}
但它没有改变任何
您遇到的问题似乎没有特定的解决方案。一个合适的解决方法是在要拆分的表之前手动插入分页符。
这可以使用以下样式完成:
break-before: page;
你可以在这里阅读更多关于
示例
您可以通过删除.break-before
类来尝试此示例
.break-before {
break-before: page;
}
.m-top {
margin-top: 90vh;
}
<body>
<table class="m-top break-before">
<tr>
<th>Company</th>
<th>Contact</th>
<th>Country</th>
</tr>
<tr>
<td>Alfreds Futterkiste</td>
<td>Maria Anders</td>
<td>Germany</td>
</tr>
<tr>
<td>Alfreds Futterkiste</td>
<td>Maria Anders</td>
<td>Germany</td>
</tr>
<tr>
<td>Centro comercial Moctezuma</td>
<td>Francisco Chang</td>
<td>Mexico</td>
</tr>
<tr>
<td>Alfreds Futterkiste</td>
<td>Maria Anders</td>
<td>Germany</td>
</tr>
<tr>
<td>Centro comercial Moctezuma</td>
<td>Francisco Chang</td>
<td>Mexico</td>
</tr>
<tr>
<td>Alfreds Futterkiste</td>
<td>Maria Anders</td>
<td>Germany</td>
</tr>
</table>
</body>