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

Remove inconsistent Flyingsaucer default padding of @page CSS selector when generating a PDF

我正在使用 FlyingSaucer 9 和以下 HTML 模板生成带有 运行 headers 的 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 有一个 "default padding"。我在 @page 选择器中添加了一个 border: 1px solid navy 以使 "default padding" 可见。问题是此填充仅出现在 PDF 第一页的顶部,但在第二页、第三页和其他页面中却没有。这导致我的 header(标有红色边框)和 body 的其余部分之间存在差距,但仅在 PDF 的第一页。

这是生成的 PDF 的第一页,带有可见的默认上边距:

这是完全没有顶部填充的第二页(除了第一页之外的所有页面都会发生这种情况):

我试过添加 @page { padding: 0; } 但它不起作用。有谁知道如何删除 @page 元素的 "default padding" 或如何使 PDF 第一页的 header 空白消失?

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

body{margin:0}