Java设置PDF跨页表格重复显示表头行的步骤详解

作者:E-iceblue 时间:2023-09-21 23:50:33 

前言

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

具体参考如下方法步骤。

1.导入Jar包

这里导入的是Free Spire.PDF for Java的jar包,Spire.PDF for Java 支持的功能非常丰富,例如 PDF 文档安全性设置,提取文本和图片,合并和拆分 PDF,画文本、图片、形状、条形码到 PDF,打印 PDF,创建和填充表单,添加和删除层,重叠 PDF 页面,添加文本/图片水印,添加、更新、删除 PDF 书签,添加表格,压缩 PDF 文档等。此外,Spire.PDF for Java 还支持将 PDF 文档高质量地转换为 XPS、图片、SVG、Word、HTML 和 PDF/A 格式,以及将 XPS 文档高质量地转换为 PDF 格式。

下载后,解压文件,在Java程序中将解压路径下lib文件中的spire.pdf.jar导入Java程序。

Java设置PDF跨页表格重复显示表头行的步骤详解

导入结果:

Java设置PDF跨页表格重复显示表头行的步骤详解

2.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(new 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跨页表格重复显示表头行的步骤详解

Java设置PDF跨页表格重复显示表头行的步骤详解

来源:https://www.cnblogs.com/Yesi/p/15006193.html

标签:pdf,重复,表头行
0
投稿

猜你喜欢

  • Unity计时器功能实现示例

    2022-03-08 20:02:39
  • Spring源码解析之事务传播特性

    2021-08-14 16:49:39
  • C#读取写入文件的3种方式示例代码

    2022-09-15 06:57:38
  • 浅谈java中String的两种赋值方式的区别

    2021-09-21 23:59:36
  • Android 使用ViewPager实现左右循环滑动及轮播效果

    2022-10-28 15:23:21
  • Java实现限定时间CountDownLatch并行场景

    2023-06-05 01:47:27
  • spring mvc 实现获取后端传递的值操作示例

    2023-08-10 12:55:52
  • C#手工双缓冲技术用法实例分析

    2023-05-09 07:13:44
  • Java判断主机是否能ping通代码实例

    2023-04-26 22:18:27
  • java基础之NIO介绍及使用

    2022-06-07 11:30:14
  • Java如何获取word文档的条目化内容

    2023-10-27 15:04:32
  • android水平循环滚动控件使用详解

    2023-07-24 15:25:34
  • Android基础之隐藏标题栏/设置为全屏/横竖屏切换

    2022-06-22 14:29:35
  • Android实现传感器功能

    2022-05-26 02:50:10
  • 深入理解Java设计模式之组合模式

    2023-09-02 02:06:25
  • spring boot项目没有mainClass如何实现打包运行

    2021-10-24 11:29:20
  • 一个进程间通讯同步的C#框架引荐

    2023-01-18 17:55:03
  • 一步步教你写Slack的Loading动画

    2023-04-27 06:56:30
  • Kotlin高阶函数reduce与fold使用实例

    2023-04-27 22:17:11
  • springboot中request和response的加解密实现代码

    2023-05-27 16:46:27
  • asp之家 软件编程 m.aspxhome.com