簡體   English   中英

如何在Java中使用itext在頁眉中添加頁碼?

[英]How to add page number in Header using itext in Java?

我無法獲取代碼以在頁眉中添加Y的頁碼X。

您可以通過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以Y的X形式添加頁碼。 此處提供工作代碼的詳細信息,位於MovieCountries1.java源代碼的05章目錄中。

創建一個像下面這樣的類

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();

根據您的文檔高度和寬度更改標題對齊寬度

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM