要在 iTextPDF 中添加动态页码,需要遵循以下步骤:

  1. 创建页面事件类

首先,需要创建一个页面事件类,该类将扩展 PdfPageEventHelper 类并覆盖 onEndPage 方法。在此方法中,您可以添加页码和其他元素。

public class PageNumberEvent extends PdfPageEventHelper {
 
    @Override
    public void onEndPage(PdfWriter writer, Document document) {
        // Add page number
        PdfContentByte cb = writer.getDirectContent();
        Phrase pageNumber = new Phrase(String.format('Page %d', writer.getPageNumber()));
        ColumnText.showTextAligned(cb, Element.ALIGN_CENTER,
                pageNumber,
                (document.right() - document.left()) / 2 + document.leftMargin(),
                document.bottom() - 10,
                0);
    }
}
  1. 添加事件到 PdfWriter

接下来,需要将事件添加到 PdfWriter 中。这将使事件在每个页面结束时触发。

PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream('output.pdf'));
PageNumberEvent event = new PageNumberEvent();
writer.setPageEvent(event);
  1. 生成 PDF 文件

最后,您可以生成 PDF 文件。

document.open();
// Add content to the document
document.close();

现在,生成的 PDF 文件将包含一个动态页码,该页码将在每个页面的底部居中显示。


原文地址: https://www.cveoy.top/t/topic/nPrA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录