`

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

阅读更多

 

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

        //保存文档
        pdf.saveToFile("Result.pdf");
        pdf.dispose();
    }
}

 

—End—

 

 

 

 

 

 

 

 

 

 

 

0
1
分享到:
评论

相关推荐

    java生成pdf文件包含表格

    本篇文章将深入探讨如何在Java中生成包含表格的PDF文件。 首先,我们需要引入支持PDF生成的库。在Java世界里,一个常用的库是iText,它是一个功能强大的开源库,专门用于处理PDF文档。描述中提到的"jar包都已经封装...

    java 后端生成pdf模板合并单元格表格的案例.docx

    ### Java后端生成PDF模板合并单元格表格案例详解 #### 概述 本文将详细介绍一个Java后端生成PDF模板,并在此基础上实现单元格合并功能的案例。案例的主要目的是展示如何在Java环境中创建复杂的表格结构,并将其导出...

    java使用IText导出PDF(包含图片、表格、文字等等Demo和依赖包)

    总结来说,IText是Java中一个强大且灵活的PDF生成库,通过它可以轻松地创建包含文字、图片和表格的PDF文档。通过理解并实践提供的Demo,你将能够熟练地运用IText进行PDF的生成工作。记住,持续学习和更新库的版本以...

    itextpdf 导出pdf 表格 自动分页中文 目录

    3. **PDF表格自动分页**: 在生成PDF文档时,如果一个表格太长以至于无法在一页内完全显示,iTextPDF可以自动将其分页。通过调整表格属性,如行高、列宽,以及设置分页策略,可以确保表格在每一页上都保持完整的结构...

    iText 页码、保持表头、页眉、页脚DEMO

    iText页码、页眉、页脚,itext 的复杂表格实现、保留表头、表尾、根据需求生成不同的iText表格

    itext生成pdf文件-表格

    在IT行业中,生成PDF文件是一...总之,iText是一个强大且灵活的PDF处理库,通过熟练掌握`PdfPTable`的使用,可以轻松创建各种复杂的PDF表格。结合实际项目需求和提供的文档资料,您可以进一步提升在PDF生成方面的技能。

    JAVA 操作PDF itext5.05

    添加了一个跨7列的单元格作为表头,设置了单元格的高度、填充、对齐方式等属性,确保表头的样式统一且美观。 #### 四、深入理解IText使用技巧 - **字体嵌入**:在生成具有多语言支持的PDF时,字体嵌入至关重要。...

    iText输出pdf表格

    通常,`Print05019Service.java`会包含业务逻辑,如获取数据源,`Print05019.java`则负责将这些数据转化为PDF表格。服务类可能会调用数据库查询或者处理其他数据源,然后将结果传递给视图层,即`Print05019.java`,...

    Javaweb开发中用itext实现pdf导出表格数据及水印操作的项目和jar包和说明文件

    3、PDF文件内容为表格,表格有表头 4、PDF文件内容支持中文,表格内容上下居中,左右居中或左对齐/右对齐 5、PDF列信息多寡不同,PDF采用页面宽度也能根据列信息按比例调整 6、PDF行信息超大时写入模式,不能引起...

    java在pdf中生成表格的方法

    目标是创建一个PDF表格,表头根据实体类的属性动态生成,数据则通过反射从实体类的get方法中获取。此外,生成的PDF文件会被存储在每日自动创建的文件夹中,文件夹名基于日期时间戳,而文件名则包含更精确的时间戳和...

    在页脚显示PDF的总页数

    在PDF文档中添加页码,特别是显示“第X页/共X页”,是提高文档可读性和导航便利性的重要功能。本篇文章将深入探讨如何在PDF中实现这一功能,主要使用iText库,这是一个强大的Java和.NET PDF处理库。 首先,我们需要...

    java代码生成pdf报表

    Apache PDFBox是一个非常流行的开源Java库,它可以方便地创建、修改和显示PDF文档。另一个选择是iText,它提供了丰富的API,使得创建复杂的PDF文档变得简单。这里我们以iText为例进行讲解。 1. **安装iText库**:在...

    复杂多表头excel表格的导出及布局,支持拓展

    要创建多级表头,可以先选定一级表头的范围,然后选择“插入”菜单中的“表”,在弹出的对话框中勾选“具有标题行”,并自定义表头。接着,对二级表头进行同样的操作,但要确保选择的范围只包括二级表头及其对应的列...

    pdf生成器,表格

    3. 添加表头:如果有的话,创建` PdfPCell`对象并设置其内容,然后添加到表格的第一行。 ```csharp PdfPCell headerCell = new PdfPCell(new Phrase("表头")); headerCell.Colspan = columns; headerCell....

    iText7 原生方法制作带斜线表格

    iText7 原生方法制作带斜线表格

    java表格控件JTable常用操作详解.pdf

    这种方式可以设置表格行的高度。 2. 设置当前航数:`DefaultTableModel tableModel = (DefaultTableModel) table.getModel(); int n=5; tableModel.setRowCount(n);` 这种方式可以设置当前航数。 3. 取得表格行数...

    flying-saucer生成pdf

    3. **表格跨行问题**: 当处理HTML中的表格时,有时需要实现跨行效果。flying-saucer可能不直接支持CSS的`rowspan`和`colspan`属性。一种解决方案是利用CSS的伪元素和绝对定位来模拟跨行效果。另一种方法是调整HTML...

    JAVA100例之实例39 生成PDF文件

    在Java编程中,生成PDF文件是一项常见的任务,特别是在报表、文档和证书的自动化生成中。本实例"JAVA100例之实例39 生成PDF文件"将带你深入理解如何利用Java来创建PDF文档。PDF(Portable Document Format)是一种...

    jasperreport动态表头

    5. **运行时动态生成**:在Java代码中,通过JasperFillManager填充报表并设置适当的参数,使报表在运行时根据数据动态生成表头。 6. **测试和优化**:生成报表后,进行详细测试,确保表头在不同数据集和屏幕尺寸下...

    JasperReport、ireport固定表头隐藏列

    在这个特定的案例中,我们关注的是如何在JasperReport和iReport中实现固定表头以及隐藏和显示列的功能。 首先,让我们了解一下JasperReport。JasperReport是一个开源的报表库,它允许开发者在各种应用程序中生成...

Global site tag (gtag.js) - Google Analytics