首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >weasyprint单页html

weasyprint单页html
EN

Stack Overflow用户
提问于 2022-07-31 15:39:41
回答 1查看 227关注 0票数 0

我正在尝试将包含单个表(其td包含图像或文本)的html页面转换为pdf。我正在使用weasyprint作为python模块。

我的问题是weasyprint在列中间插入分页,这是我不想要的。

我想做的是:

  • 重放(降比例尺)使页面符合某一页的高度
  • 更改页面高度以适应内容的高度

表的大小(行/列的数量)是可变的(我事先不知道)。

我试过的东西:

1.

我尝试使用css page.size属性来更改页面大小,但由于事先不知道表的大小,所以无法工作。

2.

我尝试添加以下内容

代码语言:javascript
复制
body html{
   height: 100%;
}

并且添加了大量的display:block,但这些只是使滚动条出现,它不会调整内容的大小以适应。

3.

我尝试使用

代码语言:javascript
复制
table {
   break-inside: avoid;
}

但这并没有改变什么

EN

回答 1

Stack Overflow用户

发布于 2022-08-12 17:20:38

对于您遇到的问题,似乎没有一个特定的解决方案。一个合适的方法是在要拆分的表之前手动插入分页。

可以使用以下样式完成此操作:

代码语言:javascript
复制
  break-before: page;

您可以阅读更多关于它的这里

示例

您可以尝试使用此示例删除.break-before类。

代码语言:javascript
复制
.break-before {
  break-before: page;
}

.m-top {
  margin-top: 90vh;
}
代码语言:javascript
复制
<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>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73184642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档