xx
[1124498879]
2021-05-31 0f8c4b7528e2b168c35a3ecbe366cf36730914b7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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());
    }
}