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