当前位置: 首页 > 知识库问答 >
问题:

itext7-html到PDF-带页面计数器的页脚-如何更改颜色

金令
2023-03-14
<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);
}

如果我试图做标题,我不会到达有页计数器。

如果我按照上面的代码做,我不会影响样式。

共有1个答案

章玮
2023-03-14

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后的可视化结果:

 类似资料:
  • 我当前正试图添加一个链接到pdf文档的页脚页眉,但是库给出了以下错误System.IndexoutOfrangeException:“请求的页码0已超出范围。”当使用IText7库将链接添加到标头时。 我在IText7中找不到任何关于这个问题的在线代码示例,ITextSharp中的解决方案不再适用。 我的问题是我如何添加一个链接到一个外部网站到PDF的标题?当前的行为是库中的bug还是有意的? 包

  • 问题内容: 如何使用itext从html源向pdf添加标头? 当前,我们扩展了PdfPageEventHelper并覆盖了这些方法。工作正常,但是当我进入2个以上页面时,它将引发RuntimeWorkerException。 问题答案: 通常, 禁止 在事件中添加内容。这是 禁止 添加内容到的对象。您应该使用而 不是 文档在方法中添加页眉和页脚。此外:通过一遍又一遍地解析HTML,您正在浪费大量C

  • 我正在尝试从预定义的HTML内容生成PDF。我设法生成了内容,但没有所需的HTML页眉、HTML页脚和阿拉伯语也不受支持。 我的要求: > 阿拉伯语支持。 生成超过10页的能力。 页脚可能因页而异。 有一个Web应用程序向WCF服务发送请求,该服务返回一个包含PDF的字节数组。 所以,我一直在寻找一个好的工具,我发现SelectPdf,它是完美的,除了它不是免费的,所以唯一的解决方案是IText7

  • 问题内容: 我正在根据客户活动创建报告。我正在iText PDF库的帮助下创建此报告。我想用蓝色背景色(用于产品名称和免责声明)创建前两个页面,并用白色(不使用背景色)创建其余页面。我使用以下代码在报告的开头用蓝色涂了两页。 但是当我使用移至第三页时,该页面仍为蓝色。我无法更改第三页的颜色。我想将第三页的颜色更改为白色。如何使用iText做到这一点? 问题答案: 这是我如何在Java中使用iTex

  • 我正在将一些PDF编辑工具从iTextSharp更新到iText7。 在iTextSharp中,pdfStamper类中有一个方法:pdfStamper。ReplacePage()。然而,iText7中的pdfStamper类已被删除,我在复制相同的功能时遇到困难。 假设我有文档X,需要用文档Y的第1页替换第4页,但我希望结果保存到一个新的文档Z。 到目前为止,我有3行使用CopyPageTo方法

  • 我想通过单击“提交”按钮更改页面。问题是我不想用PHP执行此操作。我将使用一个链接示例,我们将其称为newpage。我创建了一个表单方法,其开头如下: 我在这个方法里面有什么是可以的。我已经创建了javascript,所以它会将我现在所在的旧页面更改为新页面 但它不起作用。我试过很多东西,但仍然不起作用。你知道怎么做吗?