Exemplo n.º 1
0
        // 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;
        }