我正在使用Pisa制作包含遵循通用格式的网页的PDF文件。 我显然做错了,因为我生成PDF(来自命令行或来自python API)我只看到最后一页重复。
在下面的代码中运行比萨,我得到三个页面,每个页面都说" C星期三和#34;当我希望看到三个不同的页面时,"星期一和#34; ," B星期二"," C星期三"。
我目前的比萨版本为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>
答案 0 :(得分:1)
从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的。