itextpdf生成頁眉頁腳,可以通過繼承PdfPageEventHelper,重新里面的相關事件來進行。
常用的幾個:
onOpenDocument,文檔打開時觸發
onCloseDocument,文檔關閉時觸發
onStartPage,頁面開始寫入前觸發
onEndPage,頁面寫入完成后觸發
設置頁眉頁腳時可以使用OnEndPage,配合ColumnText類,在頁面特定位置輸出。
/** * 在一個頁面寫入完成后觸發 */ @Override public void onEndPage(PdfWriter writer, Document doc) { Font headFont = FontFactory.getFont(FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 9,Font.NORMAL,BaseColor.BLACK); //添加標題文本 StringBuffer underline = new StringBuffer(); for(int i = 0;i<116;i++) { underline.append("_"); } Phrase contentPh = new Phrase("這是是頁眉",headFont); Phrase underlinePh = new Phrase(underline.toString(),headFont); Phrase pageNumberPh = new Phrase(String.valueOf(doc.getPageNumber()),headFont); float center = doc.getPageSize().getRight()/2;//頁面的水平中點 float top = doc.getPageSize().getTop()-36; float bottom = doc.getPageSize().getBottom()+36; /** 參數xy是指文本顯示的頁面上的哪個店。alignment指文本在坐標點的對齊方式 */ ColumnText.showTextAligned(writer.getDirectContent(),Element.ALIGN_CENTER,contentPh,center,top,0); //頁眉 ColumnText.showTextAligned(writer.getDirectContent(),Element.ALIGN_CENTER,underlinePh,center,top-3,0); //頁眉 ColumnText.showTextAligned(writer.getDirectContent(),Element.ALIGN_CENTER,pageNumberPh,center,bottom,0); //頁碼 }