Java 设置PDF跨页表格重复显示表头行

Posted diuxie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 设置PDF跨页表格重复显示表头行相关的知识,希望对你有一定的参考价值。

在创建表格时,如果表格内容出现跨页显示的时候,默认情况下该表格的表头不会在下一页显示,在阅读体验上不是很好。下面分享一个方法如何在表格跨页是显示表格的表头内容,这里只需要简单使用方法 grid.setRepeatHeader( true); 即可。具体参考如下方法步骤。

  1. 导入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();
 }

}

以上是关于Java 设置PDF跨页表格重复显示表头行的主要内容,如果未能解决你的问题,请参考以下文章

前端实现打印(实现分页、表头重复)

PB 报表 分页打印 带表头 用的freeform ,

Antd 表格数据分页加载,并且能够跨页选择数据

wps word打字老是跳动

在word中怎么使正在编辑的信息永远处于页面最顶端?

java程序,使用poi,用word模板,如何在分页后重复展示表头