IText7 html2pdf 使用 CSS 固定页脚

dri*_*u16 4 html css itext html-to-pdf itext7

我目前正在尝试使用 itext7 和 itext7.pdfhtml 将 HTML 转换为 PDF,但遇到了一个小问题。

我有一个固定的页脚 (.footer),在使用浏览器打开时效果很好,但在使用下面的代码进行转换时,div 并未固定到页面底部。该 div 位于其之前的其他 div 内容之后。

C#.net核心代码

string fullBody = System.IO.File.ReadAllText("index.html"); 
var stream = new MemoryStream();
var writer = new iText.Kernel.Pdf.PdfWriter(stream);
writer.SetCloseStream(false); 
iText.Html2pdf.HtmlConverter.ConvertToPdf(fullBody , writer);
writer.Close();
stream.Seek(0, SeekOrigin.Begin);
Run Code Online (Sandbox Code Playgroud)

超文本标记语言

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" type="text/css" href="styles.css"> 
</head>
<body> 
    <div class="header">
        <img src="header1.bmp" width="100%" />
        <img src="header2.bmp" width="100%"/>
    </div>
    ... 
    <div class="footer">
        Fixed footer
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

CSS

.footer {
    position: fixed;
    left: 0;
    bottom: 0;
    width: 100%;  
    text-align: center;
}
Run Code Online (Sandbox Code Playgroud)

已经尝试了其他几个例子,但它仍然不会停留在底部。

即使这个类似的问题类似的问题也不起作用

任何帮助将不胜感激。

在 PDF 中 在pdf中

在浏览器中(打印视图) 在此输入图像描述

只是一个小注释 - 该 pdf 将只有一页,因此可能会考虑硬编码解决方案。

Ale*_*ach 6

页脚属于页边距区域。@pagemedia 是配置它的正确方法。CSSrunning元素功能可用于将元素放入所需位置并将其从布局的其余部分中排除。将 HTML 转换为基于页面的表示的主要工具都支持它。

下面是一个 HTML 示例:

<!DOCTYPE html>
<html>
    <head>
        <style>
            #footer {
                position: running(footer);
            }

            @page {
                @bottom-center {
                    content: element(footer);
                }
            }
        </style>
    </head>

    <body>

        <p>Hello world</p>

        <div id="footer">I am a footer</div>

    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

结果如下:

结果