package cc.mrbird.febs.server.hr.util; import com.itextpdf.text.*; import com.itextpdf.text.pdf.*; import java.io.IOException; public class HeaderHandle extends PdfPageEventHelper { /** * 页眉 */ public String header = "12121"; /** * 表格式页眉 */ protected PdfPTable headerTable; /** * 文档字体大小,页脚页眉最好和文本大小一致 */ public int presentFontSize = 12; private float size=1.0f; /** * 文档页面大小,最好前面传入,否则默认为A4纸张 */ public Rectangle pageSize = PageSize.A4; // 基础字体对象 public BaseFont bf = null; // 利用基础字体生成的字体对象,一般用于生成中文文字 public Font fontDetail = null; /** * * Creates a new instance of PdfReportM1HeaderFooter 构造方法. * * @param yeMei * 页眉字符串 * @param presentFontSize * 数据体字体大小 * @param pageSize * 页面文档大小,A4,A5,A6横转翻转等Rectangle对象 */ public HeaderHandle(String yeMei, int presentFontSize, Rectangle pageSize) { this.header = yeMei; this.presentFontSize = presentFontSize; this.pageSize = pageSize; } public HeaderHandle(PdfPTable headerTable) { this.headerTable = headerTable; } public void setHeaderTable(PdfPTable headerTable) { this.headerTable = headerTable; } @Override public void onEndPage(PdfWriter writer, Document document) { try { if (bf == null) { bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", false); } if (fontDetail == null) { fontDetail = new Font(bf, presentFontSize, Font.BOLD);// 数据体字体 fontDetail.setSize(size); } } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // 1.写入页眉 ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_LEFT, new Phrase(header, fontDetail), document.left(), document.top() + 20, 0); // rowEnd为-1 表示写入所有行 // headerTable.writeSelectedRows(0, -1, document.left()+document.leftMargin()/2, document.top() + headerTable.getTotalHeight(), writer.getDirectContent()); } }