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

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。Java 设置PDF跨页表格重复显示表头行,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

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

1.导入Jar

这里导入的是Free Spire.PDF for Java的jar包,下载后,解压文件,在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跨页表格重复显示表头行

 

另推荐阅读:C#/VB.NET 设置PDF跨页表格重复显示表头行

 

—End—

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/209248.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!