在创建表格时,如果表格内容出现跨页显示的时候,默认情况下该表格的表头不会在下一页显示,在阅读体验上不是很好。下面分享一个方法如何在表格跨页是显示表格的表头内容,这里只需要简单使用方法 grid.setRepeatHeader(true); 即可。具体参考如下方法步骤。
1.导入Jar包
这里导入的是Free Spire.PDF for Java的jar包,下载后,解压文件,在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(); } }
不同页面重复显示表头行效果如图,这里分别展示了不同字体设置的跨页表头效果:
另推荐阅读:C#/VB.NET 设置PDF跨页表格重复显示表头行
—End—
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/209248.html