admin管理员组

文章数量:1648973

效果图如下:

动态表格生成参考

itext模板生成pdf 后添加动态表格_音乐土豆的博客-CSDN博客

private static void appendTableToDocument(Document document){
    //定义 6列的表格
    PdfPTable table = new PdfPTable(new float[] { 80, 80, 80, 80, 80, 80});
    table.setTotalWidth(520);
    table.setLockedWidth(true);
    table.setHorizontalAlignment(Element.ALIGN_CENTER);//居中

    try {
        //定义数据的字体
        BaseFont baseFont = BaseFont.createFont("Helvetica","UTF-8",BaseFont.NOT_EMBEDDED);
        Font textFont = new Font(baseFont, 6, Font.NORMAL);

        /************自定义表头 隔页显示 start******************/
        //设置每页表头要显示的行数
        table.setHeaderRows(2);
        PdfPCell hearder = new PdfPCell(new Paragraph("Device ID: 220200647H",textFont));
        //设置合并6列
        hearder.setColspan(6);
        //靠左
        hearder.setHorizontalAlignment(Element.ALIGN_LEFT);
        //居中
        hearder.setVerticalAlignment(Element.ALIGN_CENTER);
        //设置无边框
        hearder.setBorder(Rectangle.NO_BORDER);
        table.addCell(hearder);
        /************自定义表头 隔页显示 end******************/

        //表头模拟数据
        for (int i = 0; i < 6; i++) {
            PdfPCell heardCell = new PdfPCell();
            heardCell.setVerticalAlignment(Element.ALIGN_MIDDLE);
            heardCell.setHorizontalAlignment(Element.ALIGN_CENTER);
            heardCell.setPhrase(new Phrase("value", textFont));
            table.addCell(heardCell);
        }
        //表格数据
        DecimalFormat df = new DecimalFormat("0.00");
        for (int i = 0; i < 1000; i++) {
            PdfPCell value1 = new PdfPCell();
            value1.setPhrase(new Phrase("2022"+i, textFont));
            table.addCell(value1);
            Double value = Math.random()*10;
            PdfPCell value2 = new PdfPCell();
            value2.setPhrase(new Phrase(df.format(value), textFont));

        }
        document.add(table);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

本文标签: 表头每页表格动态PDF