前言
在創(chuàng)建表格時(shí),如果表格內(nèi)容出現(xiàn)跨頁顯示的時(shí)候,默認(rèn)情況下該表格的表頭不會(huì)在下一頁顯示,在閱讀體驗(yàn)上不是很好。下面分享一個(gè)方法如何在表格跨頁是顯示表格的表頭內(nèi)容,這里只需要簡單使用方法 grid.setrepeatheader(true);即可。
具體參考如下方法步驟。
1.導(dǎo)入jar包
這里導(dǎo)入的是free spire.pdf for java的jar包,spire.pdf for java 支持的功能非常豐富,例如 pdf 文檔安全性設(shè)置,提取文本和圖片,合并和拆分 pdf,畫文本、圖片、形狀、條形碼到 pdf,打印 pdf,創(chuàng)建和填充表單,添加和刪除層,重疊 pdf 頁面,添加文本/圖片水印,添加、更新、刪除 pdf 書簽,添加表格,壓縮 pdf 文檔等。此外,spire.pdf for java 還支持將 pdf 文檔高質(zhì)量地轉(zhuǎn)換為 xps、圖片、svg、word、html 和 pdf/a 格式,以及將 xps 文檔高質(zhì)量地轉(zhuǎn)換為 pdf 格式。
下載后,解壓文件,在java程序中將解壓路徑下lib文件中的spire.pdf.jar導(dǎo)入java程序。
導(dǎo)入結(jié)果:
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) { //新建一個(gè)pdf文檔 pdfdocument pdf = new pdfdocument(); //添加一頁 pdfpagebase page = pdf.getpages().add(); //創(chuàng)建pdfgrid類的對象 pdfgrid grid = new pdfgrid(); //設(shè)置單元格填充 grid.getstyle().setcellpadding(new pdfpaddings(1,1,1,1)); //添加表格列數(shù) grid.getcolumns().add(3); //添加表頭行及表格數(shù)據(jù) 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());*/ } //設(shè)置重復(fù)表頭(表格跨頁時(shí)) grid.setrepeatheader(true); //添加數(shù)據(jù)到表格 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(); } }
不同頁面重復(fù)顯示表頭行效果如圖,這里分別展示了不同字體設(shè)置的跨頁表頭效果:
總結(jié)
到此這篇關(guān)于java設(shè)置pdf跨頁表格重復(fù)顯示表頭行的文章就介紹到這了,更多相關(guān)java設(shè)置pdf重復(fù)顯示表頭行內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://www.cnblogs.com/Yesi/p/15006193.html