生成PDF时,删除@page CSS选择器的不一致Flyingsaucer默认填充

时间:2015-01-20 16:53:24

标签: java css3 pdf flying-saucer

我正在使用FlyingSaucer 9使用以下HTML模板生成带有运行标题的PDF:

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
@page {
  size: 793px 1122px;
  border: 1px solid navy;
  margin: 25px 35px 53px 35px;
  padding: 0; /*Does not work*/
  @top-center {content:element(header);}    
}
#header {
  position: running(header);
  border: 1px solid red;
}
</style>
<title></title>
</head>
<body>
  <div id="header">Test header</div>
  Lorem ipsum dolor sit amet, [and some other lenghty text ...]
</body>
</html>

我面临的问题是生成的PDF有“默认填充”。我在@page选择器中添加了一个边框:1px实心海军,可以看到“默认填充”。问题是此填充仅出现在PDF的第一页的顶部,但在第二页,第三页和其他页中缺少。这导致我的标题(标有红色边框)与正文的其余部分之间存在差距,但仅限于PDF的第一页

以下是生成的PDF的第一页,其中包含可见的默认顶部填充:

First page of the PDF 这里是第二页没有顶部填充(这种情况发生在除第一页之外的所有页面):

Second page of the PDF 我试过添加@page {padding:0;但它不起作用。有没有人知道如何删除@page元素的“默认填充”或者如何让我的标题的间隙消失为PDF的第一页?

1 个答案:

答案 0 :(得分:2)

您可以通过将正文边距设置为0来更正问题:

body{margin:0}

enter image description here