前言
在創建表格時,如果表格內容出現跨頁顯示的時候,默認情況下該表格的表頭不會在下一頁顯示,在閱讀體驗上不是很好。下面分享一個方法如何在表格跨頁是顯示表格的表頭內容,這里只需要簡單使用方法 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(); } }
不同頁面重復顯示表頭行效果如圖,這里分別展示了不同字體設置的跨頁表頭效果:
總結
到此這篇關于java設置pdf跨頁表格重復顯示表頭行的文章就介紹到這了,更多相關java設置pdf重復顯示表頭行內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://www.cnblogs.com/Yesi/p/15006193.html