Java 設置PDF跨頁表格重復顯示表頭行


在創建表格時,如果表格內容出現跨頁顯示的時候,默認情況下該表格的表頭不會在下一頁顯示,在閱讀體驗上不是很好。下面分享一個方法如何在表格跨頁是顯示表格的表頭內容,這里只需要簡單使用方法 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—

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM