简体   繁体   English

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

[英]Paginating in Pisa (xhtml2pdf) just repeats last page

I am using Pisa to produce a PDF file with pages that follow a common format. 我正在使用Pisa生成PDF文件,其中包含遵循通用格式的页面。 I am clearly doing something wrong as when I generate the PDF (either from from the command line or from the python API) I only ever see the last page repeated. 我显然做错了,因为我生成PDF(来自命令行或来自python API)我只看到最后一页重复。

Running the Pisa on the code below, I get three pages that each say "C Wednesday", when I'd expect to see three different pages with "A Monday", "B Tuesday", "C Wednesday". 在下面的代码中运行比萨,我得到三个页面,每个页面都说“C星期三”,当我希望看到三个不同页面的“A Monday”,“B Tuesday”,“C Wednesday”。

My current version of Pisa is XHTML2PDF/pisa 3.0.33 (Build 2010-06-16) 我目前的比萨版本是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>

Try version from Github https://github.com/chrisglass/xhtml2pdf Your version is too old and unmaintained. 尝试从Github版本https://github.com/chrisglass/xhtml2pdf您的版本太旧而且没有维护。

About your problem, is a known problem in the parser. 关于您的问题,是解析器中的已知问题。 Try to put the tag on its own line like this: 尝试将标记放在自己的行上,如下所示:

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

AFTER THIRD READING: 第三次阅读后:

<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>

From your code, you are repeating header and footer for each content. 从您的代码中,您将重复每个内容的页眉和页脚。 But you have defined them as header frames (automatically repeat them on each page), so the parser must be going nuts. 但是你已经将它们定义为标题框架(在每个页面上自动重复它们),因此解析器必须坚固。 Also you are creating another static frame for content, which shouldn't be. 您还要为内容创建另一个静态框架,这不应该是。

So, only one header, one footer, create many contents with <pdf:nextpage /> behind. 因此,只有一个页眉,一个页脚,后面有<pdf:nextpage />创建许多内容。

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

Maybe I've undersrtood you wrong again, cause I don't know how are you generating this html. 也许我再次错过了你的错,因为我不知道你是如何产生这个HTML的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM