// start a new page private void CreateNewPage() { // terminate activity on current page if (DrawingActive) { // draw border and grid on current page DrawBorders(); // call user event handler for end of table on each page if (TableEndEvent != null) { TableEndEvent(this, _RowTopPosition); } // update page number TablePageNumber++; } // commit to PDF file if (CommitToPdfFile) { Contents.CommitToPdfFile(CommitGCCollectFreq > 0 && (CommitGCCollectFreq == 1 || (TablePageNumber % CommitGCCollectFreq) == (CommitGCCollectFreq - 1))); } // create a new page as a clone of the previous page Page = new PdfPage(Page); Contents = new PdfContents(Page); // reset border lines BorderRowTopPos = _TableArea.Top; BorderYPos.Clear(); BorderYPos.Add(BorderRowTopPos); // initial row position on the page _RowTopPosition = TableTopLimit; // calculate header height if (DrawingActive && DisplayHeader && HeaderOnEachPage) { CalculateHeaderHeight(); } // call user event handler for start of table on each page if (TableStartEvent != null) { TableStartEvent(this, BorderRowTopPos); } return; }