10、打印表格自动分页
一、以下代码可针对任意表格进行打印分页,源代码如下:
//拆分打印的数据表 //table:要拆分的表对象,如:$(".WorkFlowCSSTable") //FirstPageSize:第一页的最大行数 //PageSize:中间页的最大行数 function SplitPrintDataTable(table, FirstPageSize, PageSize) { var AllRows = $("tr", table); var TotalRow = AllRows.length; if (TotalRow > FirstPageSize) { //计算分页的数量 var TotalPage = CountTotalPage(PageSize, TotalRow - FirstPageSize - 1); var IsEnd = false; var LastInsertAfterElement = table; for (var i = 0; i < TotalPage; i++) { var NewTable = null; if (!IsEnd) { //复制一个新的表头 var html = table.prop('outerHTML'); html = RegexClass.GetRegExpValue(/<table.*?>/ig, html) + "</table>"; NewTable = $(html); LastInsertAfterElement.after(NewTable); Element.SetStyle(NewTable, "page-break-before", "always"); LastInsertAfterElement = NewTable; //复制第一行 Element.AppendByElement(NewTable, $(AllRows[0]).clone()); //复制行 for (var n = 0; n < PageSize; n++) { var RowIndex = FirstPageSize + i * PageSize + n + 1; if (RowIndex < TotalRow) { Element.AppendByElement(NewTable, AllRows[RowIndex]); } else { IsEnd = true; break; } } } } } }
二、调用示例代码:
SplitPrintDataTable($("#MainWorkFlowCSSTable"), 2, 3);
三、效果如下: