Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用飞碟生成PDF时,标题与正文重叠_Java_Flying Saucer - Fatal编程技术网

Java 使用飞碟生成PDF时,标题与正文重叠

Java 使用飞碟生成PDF时,标题与正文重叠,java,flying-saucer,Java,Flying Saucer,我使用飞碟R8生成PDF文件。PDF需要在每一页上重复的标题。标题将由用户指定,因此我无法确定其高度。我设法使页眉在每一页上重复,但问题是,如果页眉有多行文本,它不会动态地重新调整正文的高度,最终会重叠正文。这是我的密码: <!DOCTYPE html> <html> <head> <style> @page { size: 4.18in 6.88in; margin: 0.25in; @top-center {conten

我使用飞碟R8生成PDF文件。PDF需要在每一页上重复的标题。标题将由用户指定,因此我无法确定其高度。我设法使页眉在每一页上重复,但问题是,如果页眉有多行文本,它不会动态地重新调整正文的高度,最终会重叠正文。这是我的密码:

<!DOCTYPE html>
<html>
<head>
<style>
@page {
    size: 4.18in 6.88in;
    margin: 0.25in;
    @top-center {content: element(header);}
}
#header {
    color: red;
    display: block;
    position: running(header);  
}

</style>
</head>
<body>
    <div id="header">
        <-- Lots of text here --> 
    </div>
    <div class="section">
        <-- Lots of text here -->   
    </div>
</body>
</html>

@页面{
尺寸:4.18英寸6.88英寸;
边缘:0.25英寸;
@顶部中间{内容:元素(标题);}
}
#标题{
颜色:红色;
显示:块;
位置:运行(收割台);
}
使用飞碟生成后,生成的PDF如下所示:


有谁能帮我找到一个解决方案,使我的页眉不与正文的其余部分重叠吗?

只需尝试通过css向您的
添加边距/填充即可。这应该能奏效


页眉重叠,因为它与页面上的所有其他元素不同。它是一种在打印模式下以特殊方式处理的文件。因此,您必须确保,如果这些元素出现在页面的任何位置,都有足够的空间。

如果其他人有此问题,我会设法找到解决方法。要动态计算PDF中页眉的大小,请忘记CSS运行的页眉,而是将整个页面设置为HTML表格,并将页眉放在
thead
部分。使用以下CSS规则在每页上重复
thead

table {
   -fs-table-paginate: paginate;
}

如果其他人也有同样的问题,我会找到一个对我有效的不同解决方案

页眉和页脚在页边距内建立。 因此,解决方案是增加页面顶部边距,例如:

@page {
        margin-top: 50mm; 
}

此解决方案复制自此答案:

请将图像直接添加到问题中,而不是添加到链接中。很抱歉,我没有必要的声誉将图像直接添加到问题中。将边距或填充添加到我的div没有帮助,因为它只计算一次(在第一页)。