加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – Pisa在比萨(xhtml2pdf)只是重复最后一页

发布时间:2020-12-20 13:31:31 所属栏目:Python 来源:网络整理
导读:我使用 Pisa生成PDF文件,其页面遵循通用格式. 我显然做错了,因为我生成PDF(来自命令行或来自python API)我只看到最后一页重复. 在下面的代码中运行比萨,我得到三个页面,每个页面都说“C星期三”,当我希望看到三个不同页面的“A Monday”,“B Tuesday”,“C W
我使用 Pisa生成PDF文件,其页面遵循通用格式.
我显然做错了,因为我生成PDF(来自命令行或来自python API)我只看到最后一页重复.

在下面的代码中运行比萨,我得到三个页面,每个页面都说“C星期三”,当我希望看到三个不同页面的“A Monday”,“B Tuesday”,“C Wednesday”.

我目前的比萨版本是XHTML2PDF / pisa 3.0.33(Build 2010-06-16)

<html>
<style>
    /* 297 x 210 */
@page {
  size: a4 landscape;
  margin: 1cm;
  margin-bottom: 2.5cm;

  @frame header {
    -pdf-frame-content: headerContent;
    background-color:black;
    color:white;
    top : 0cm;
    margin-left: 0cm;
    margin-right: 14.5cm; 
    height: 2.5cm;
    width: 14.9cm;
  }

  @frame lhs {
    -pdf-frame-content: lhs;
    background-color:white;
    color:black;
    top : 4.5cm;
    margin-left: 0cm;
    margin-right: 14.5cm; 
    height: 13.5cm;
    width: 14.9cm;
  }

  @frame footer {
    -pdf-frame-content: footerContent;
    color:black;
    bottom: 1cm;
    margin-left: 1cm;
    margin-right: 24.5cm; 
    height: 1cm;
  }

}

body {
}

#headerContent {
    text-align: center;
    background-color: black;
    color: white;
}
h1 {
    font-size: 200%;
}

#lhs-table {
    color:black;
    text-align: center;
    font-size:600%;
}

.big {
    font-size:200%;
    font-style:italic;
}

.day {
    text-align: center;
    background-color: black;
    color: white;
    width: 1.6cm;
    height: 1.3cm;
}

#footerContent {
    font-size: 200%;
}


</style>
<body>

<div>
  <div id="headerContent">
      <h1><br/>HEADER<br/></h1>
  </div>

  <div id="lhs">
      <table id="lhs-table" >
                <tr>
                    <td><span class="big"><em>A</em></span></td>
                </tr>
            </table>
    </div>

  <div id="footerContent">
      <span class="day" >Monday</span>
  </div>

  </div>
    <pdf:nextpage />


<div>
  <div id="headerContent">
      <h1><br/>HEADER<br/></h1>
  </div>

  <div id="lhs">
      <table id="lhs-table" >
                <tr>
                    <td><span class="big"><em>B</em></span></td>
                </tr>
            </table>
    </div>


  <div id="footerContent">
      <span class="day" >Tuesday</span>
  </div>

  </div>
    <pdf:nextpage />


<div>
  <div id="headerContent">
      <h1><br/>HEADER<br/></h1>
  </div>

  <div id="lhs">
      <table id="lhs-table" >
                <tr>
                    <td><span class="big"><em>C</em></span></td>
                </tr>
            </table>
    </div>

  <div id="footerContent">
      <span class="day" >Wednesday</span>
  </div>

  </div>
    <pdf:nextpage />


</body>
</html>

解决方法

试试Github https://github.com/chrisglass/xhtml2pdf的版本你的版本太旧而且没有维护.

关于您的问题,是解析器中的已知问题.尝试将标记放在自己的行上,如下所示:

<div id="footer">
     <pdf:pagenumber />
</div>

第三次阅读后:

<body>
<div id="header">
</div>

 <div id="content1>
   content 1
 </div>
 <pdf:nextpage />

 <div id="content2>
     content 2
 </div>
 <pdf:nextpage />

 <div id="content3>
     content 3
 </div>
 <pdf:nextpage />

<div id="footer">
</div>
</body>

从您的代码中,您将重复每个内容的页眉和页脚.但是你已经将它们定义为标题框架(在每个页面上自动重复它们),因此解析器必须坚固.您还要为内容创建另一个静态框架,这不应该是.

因此,只有一个标题,一个页脚,使用< pdf:nextpage />创建许多内容.背后.

https://github.com/chrisglass/xhtml2pdf/blob/master/doc/usage.rst

也许我再次错过了你的错,因为我不知道你是如何产生这个HTML的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读