[英]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
。 在該類中,您重寫onOpenDocument , onEndPage和onCloseDocument方法,並且可以使用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.