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

网友投稿 261 2022-12-28

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

目录前言1.导入Jar包2.java代码总结

前言

在创建表格时,如果表格内容出现跨页显示的时候,默认情况下该表格的表头不会在下一页显示,在阅读体验上不是很好。下面分享一个方法如何在表格跨页是显示表格的表头内容,这里只需要简单使用方法 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程序。

导入结果:

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();

}

}

不同页面重复显示表头行效果如图,这里分别展示了不同字体设置的跨页表头效果:

总结

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java面试题冲刺第六天
下一篇:网站写api接口参数加密(API加密)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~