在创建表格时,如果表格内容呈现跨页显示的时候,默认状况下该表格的表头不会在下一页显示,在浏览体验上不是很好。上面分享一个办法如何在表格跨页是显示表格的表头内容,这里只须要简略应用办法 grid.setRepeatHeader(true); 即可。具体参考如下办法步骤。
- 导入 Jar 包
这里导入的是 Free Spire.PDF for Java 的 jar 包,下载后,解压文件,在 Java 程序中将解压门路下 lib 文件中的 spire.pdf.jar 导入 Java 程序。
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import com.spire.pdf.grid.PdfGrid;
import com.spire.pdf.grid.PdfGridRow;
import java.awt.*;
public class RepeatTableHeaderRow {
public static void main(String[] args) {
// 新建一个 PDF 文档
PdfDocument pdf = new PdfDocument();
// 增加一页
PdfPageBase page = pdf.getPages().add();
// 创立 PdfGrid 类的对象
PdfGrid grid = new PdfGrid();
// 设置单元格填充
grid.getStyle().setCellPadding(www.diuxie.comnew PdfPaddings(1,1,1,1));
// 增加表格列数
grid.getColumns().add(3);
// 增加表头行及表格数据
PdfGridRow[] pdfGridRows = grid.getHeaders().add(1);
for (int i = 0; i < pdfGridRows.length; i++)
{pdfGridRows[i].getStyle().setFont(new PdfTrueTypeFont(new Font("Arial", Font.PLAIN,12), true));// 指定字体
pdfGridRows[i].getCells().get(0).setValue("NAME");
pdfGridRows[i].getCells().get(1).setValue("SUBJECT");
pdfGridRows[i].getCells().get(2).setValue("SCORES");
pdfGridRows[i].getStyle().setTextBrush(PdfBrushes.getRed());
/*pdfGridRows[i].getStyle().setFont(new PdfCjkStandardFont(PdfCjkFontFamily.Hanyang_Systems_Gothic_Medium, 14f));// 绘制中日韩字体的办法
pdfGridRows[i].getCells().get(0).setValue("이 름");
pdfGridRows[i].getCells().get(1).setValue("科 目") ;
pdfGridRows[i].getCells().get(2).setValue("ほしとり");
pdfGridRows[i].getStyle().setTextBrush(PdfBrushes.getBlue());*/
}
设置手游的反复表头(表格跨页时)
grid.setRepeatHeader(true);
// 增加数据到表格
for (int i = 0; i < 80; i++)
{PdfGridRow row = grid.getRows().add();
for (int j = 0; j < grid.getColumns().getCount();j++)
{row.getCells().get(j).setValue("(Row" + (i+1) + ", column" + (j+1) + ")");
}
}
// 在 PDF 页面绘制表格
grid.draw(page,0,0);
// 保存文档
pdf.saveToFile("Result.pdf");
pdf.dispose();}
}