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动态表格每页显示表头 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1729505391a1203565.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论