首页 > 解决方案 > iText7 - Html 到 PDF - 带页面计数器的页脚 - 如何更改颜色

问题描述

使用 iText7 for Java,我尝试将 HTML 转换为 PDF。我尝试更改页脚的样式,但没有成功。

我的 HTML:

<html>
    <head>
        <style>
            #header {
                position: running(header);
                text-align: left;
                margin-top: 50pt;
                margin-left: 320pt;
                font-family: Garamond;
            }
            
            @page {
                margin-top: 200pt;
                margin-right: 30pt;
                margin-bottom: 50pt;
                margin-left: 30pt;
                
                @top-right {
                    content: element(header);
                }
               
                @bottom-center {
                    content: "Page " counter(page) " of " counter(pages);
                }

            }
        </style>
    </head>
    <body>
        <div id="header">
            Monsieur Jay LAPOISSE<br>
            13 avenue de la Chance<br>
            35911 Rennes
        </div>
        
        <div style="page-break-after: always;">First page</div>
        <div style="page-break-after: always;">Second page</div>
        <div>Last page</div>
    </body>
</html>

我的爪哇

try {
    HtmlConverter.convertToPdf(new FileInputStream(new File(SRC)), new FileOutputStream(new File(DEST)));
} catch(Exception e) {
    e.printStackTrace(System.err);
}

我的目标:

目标

如果我尝试像页眉那样做,我不会到达页面计数器。

如果我按照上面的代码进行操作,我不会影响风格。

标签: javahtmlitextitext7pdf-conversion

解决方案


CSS 总共有 16 个页边距区域,您可以在其中放置内容。您可以通过以下 CSS 代码轻松使用这些区域来实现您的用例:

@bottom-right {
    color: red;
    content: "Page " counter(page) " of " counter(pages);
}
@bottom-left {
    color: red;
    content: "[document title]";
}

完整的 HTML:

<html>
<head>
  <style>
    #header {
      position: running(header);
      text-align: left;
      margin-top: 50pt;
      margin-left: 320pt;
      font-family: Garamond;
    }

    @page {
      margin-top: 200pt;
      margin-right: 30pt;
      margin-bottom: 50pt;
      margin-left: 30pt;

      @top-right {
        content: element(header);
      }

      @bottom-right {
        color: red;
        content: "Page " counter(page) " of " counter(pages);
      }
      @bottom-left {
        color: red;
        content: "[document title]";
      }

    }
  </style>
</head>
<body>
<div id="header">
  Monsieur Jay LAPOISSE<br>
  13 avenue de la Chance<br>
  35911 Rennes
</div>

<div style="page-break-after: always;">First page</div>
<div style="page-break-after: always;">Second page</div>
<div>Last page</div>
</body>
</html>

使用 pdfHTML 3.0.1 转换为 PDF 后的视觉结果:

结果


推荐阅读