【问题标题】:How to add page number in Header using itext in Java?如何在 Java 中使用 itext 在页眉中添加页码?
【发布时间】:2011-12-11 13:56:39
【问题描述】:

我无法获取在页面页眉中添加 Y 的页码 X 的代码。

【问题讨论】:

标签: java itext


【解决方案1】:

您可以通过 PdfTemplate 来做到这一点。 首先,将 PdfPageEventHelper 附加到 PdfWriter

Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, 
       new FileOutputStream("C:/path/to/pdf"));
writer.setPageEvent(new PageEventListener());

然后定义类PageEventListener 来扩展PdfPageEventHelper。 在该类中,您可以覆盖 onOpenDocumentonEndPageonCloseDocument 方法,并且可以使用 PdfTemplate 以 X of Y 的形式添加页码。 工作代码的详细信息here,在 chapter05 目录,MovieCountries1.java 来源。

【讨论】:

    【解决方案2】:

    创建一个类似下面的类

    public class HeaderAndFooter extends PdfPageEventHelper {
    
    public void onEndPage (PdfWriter writer, Document document) {
        Rectangle rect = writer.getBoxSize("art");
        switch(writer.getPageNumber() % 2) {
        case 0:
           ColumnText.showTextAligned(writer.getDirectContent(),
                   Element.ALIGN_RIGHT, new Phrase("header"),
                   rect.getBorderWidthRight(), rect.getBorderWidthTop(), 0);
            break;
        case 1:
            ColumnText.showTextAligned(writer.getDirectContent(),
                    Element.ALIGN_CENTER, new Phrase(String.format("%d", writer.getPageNumber())),
                    300f, 62f, 0);
            break;
        }
       ColumnText.showTextAligned(writer.getDirectContent(),
                Element.ALIGN_CENTER, new Phrase(String.format("%d", writer.getPageNumber())),
                (2f + 4f) / 2, 2f - 18, 0);
    }}
    

    在生成的 pdf 类中使用以下一个

    bytearrayoutputstream = new ByteArrayOutputStream();
            Document document = new Document(PageSize.A4, 60, 60, 120, 80);
            PdfWriter writer = PdfWriter.getInstance(document, bytearrayoutputstream );
            HeaderAndFooter event = new HeaderAndFooter();
            writer.setPageEvent(event);
            document.open();
    

    根据您的文档高度和宽度更改标题对齐宽度

    【讨论】:

      猜你喜欢
      • 2013-11-08
      • 2020-04-26
      • 2013-11-20
      • 1970-01-01
      • 2012-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多