/// <summary>
/// Starts a new group by creating a new table and initializing its properties.
/// </summary>
/// <param name="groupHeaderRowCellsData">New group's header row data</param>
/// <param name="shouldCheckOneGroupPerPage">Do we need a new page again?</param>
public void StartNewGroup(IEnumerable <CellData> groupHeaderRowCellsData, bool shouldCheckOneGroupPerPage)
{
MainTable.ElementComplete = true; //print the last footer
var hasRows = MainTable.Rows.Any();
if (hasRows)
{
if (SharedData.ShouldWrapTablesInColumns)
{
MainGroupTable.AddCell(new PdfPCell(MainTable)
{
Border = 0
});
}
else
{
MainTable.SpacingAfter += MainTable.HeaderHeight + 2.5f;
tryFitToContent();
SharedData.PdfDoc.Add(MainTable);
MainTable.DeleteBodyRows();
}
}
if (SharedData.MainTableEvents != null && _groupNumber > 0)
{
SharedData.MainTableEvents.GroupAdded(new EventsArguments {
PdfDoc = SharedData.PdfDoc, PdfWriter = SharedData.PdfWriter, Table = MainGroupTable, ColumnCellsSummaryData = SharedData.ColumnCellsSummaryData, PreviousTableRowData = CurrentRowInfoData.PreviousTableRowData, PageSetup = SharedData.PageSetup, PdfFont = SharedData.PdfFont, PdfColumnsAttributes = SharedData.PdfColumnsAttributes
});
}
_groupNumber++;
if (shouldCheckOneGroupPerPage)
{
showOneGroupPerPage();
}
renderGroupHeader(groupHeaderRowCellsData);
initMainTable();
RowsManager.TableInitAddHeaderAndFooter();
reset();
}