itext 带表头有两种方法以:
第一种是Table的,第二种是PdfPTable的。
第一中的具体代码如下:
Table detailTable = new Table(3);
int detailWidth[] = {2,3,5};//每列宽度百分比
detailTable.setWidths(detailWidth);
detailTable.setWidth(100); // 占页面宽度 100%
detailTable.setDefaultHorizontalAlignment(Element.ALIGN_LEFT);
detailTable.setDefaultVerticalAlignment(Element.ALIGN_MIDDLE);
detailTable.setAutoFillEmptyCells(true); //自动填满
detailTable.setPadding(1);
detailTable.setSpacing(0);
//表头部分
Cell cellHeader = new Cell(new Phrase("表头一",FontChinese));
cellHeader.setHeader(true); [color=red]//设置要带过去下一页的表头[/color]
detailTable.addCell(cellHeader);
cellHeader = new Cell(new Phrase("表头二",FontChinese));
cellHeader.setHeader(true); [color=red]//设置要带过去下一页的表头[/color]
detailTable.addCell(cellHeader);
cellHeader = new Cell(new Phrase("表头三",FontChinese));
cellHeader.setHeader(true);
detailTable.addCell(cellHeader);
detailTable.endHeaders(); [color=red]//一定要有这句话才能带表头到下一页[/color]
for(int i=0; i< 50; i++){
detailTable.addCell(new Phrase("内容1",FontChinese));
detailTable.addCell(new Phrase("内容2",FontChinese));
detailTable.addCell(new Phrase("内容3",FontChinese));
}
document.add(detailTable);
第二种方法:
假如你有一个非常多行的表格,长得要分开几页才能显示完,想在每一页最顶部显示整个表格的第一行(也可以是多行,也就是你的表头),只需要调用table.setHeaderRows(行数)就可以了. 但前提是你的table一定要是PdfPTable的。
第一种是Table的,第二种是PdfPTable的。
第一中的具体代码如下:
Table detailTable = new Table(3);
int detailWidth[] = {2,3,5};//每列宽度百分比
detailTable.setWidths(detailWidth);
detailTable.setWidth(100); // 占页面宽度 100%
detailTable.setDefaultHorizontalAlignment(Element.ALIGN_LEFT);
detailTable.setDefaultVerticalAlignment(Element.ALIGN_MIDDLE);
detailTable.setAutoFillEmptyCells(true); //自动填满
detailTable.setPadding(1);
detailTable.setSpacing(0);
//表头部分
Cell cellHeader = new Cell(new Phrase("表头一",FontChinese));
cellHeader.setHeader(true); [color=red]//设置要带过去下一页的表头[/color]
detailTable.addCell(cellHeader);
cellHeader = new Cell(new Phrase("表头二",FontChinese));
cellHeader.setHeader(true); [color=red]//设置要带过去下一页的表头[/color]
detailTable.addCell(cellHeader);
cellHeader = new Cell(new Phrase("表头三",FontChinese));
cellHeader.setHeader(true);
detailTable.addCell(cellHeader);
detailTable.endHeaders(); [color=red]//一定要有这句话才能带表头到下一页[/color]
for(int i=0; i< 50; i++){
detailTable.addCell(new Phrase("内容1",FontChinese));
detailTable.addCell(new Phrase("内容2",FontChinese));
detailTable.addCell(new Phrase("内容3",FontChinese));
}
document.add(detailTable);
第二种方法:
假如你有一个非常多行的表格,长得要分开几页才能显示完,想在每一页最顶部显示整个表格的第一行(也可以是多行,也就是你的表头),只需要调用table.setHeaderRows(行数)就可以了. 但前提是你的table一定要是PdfPTable的。