Category / Section
How to paginate the text or table based on the table height?
1 min read
How to paginate the text or table based on the table height?
The actual table height can be calculated before drawing in the PDF document. Please refer the following example to achieve the above requirements:
C#
//Create a new PDF document. PdfDocument pdfDocument = new PdfDocument(); PdfPage pdfPage = pdfDocument.Pages.Add(); //Draw the grid PdfGrid pdfGridTable = new PdfGrid(); pdfGridTable.RepeatHeader = true; //Add columns. pdfGridTable.Columns.Add(2); //Add header. pdfGridTable.Headers.Add(1); PdfGridRow pdfGridHeader1 = pdfGridTable.Headers[0]; pdfGridHeader1.Cells[0].Value = "EMP NAME "; pdfGridHeader1.Cells[1].Value = "ID"; //Add rows. for (var i = 0; i < 23; ++i) { PdfGridRow pdfGridRow = pdfGridTable.Rows.Add(); pdfGridRow.Cells[0].Value = "Gilbert"; pdfGridRow.Cells[1].Value = "1796"; } //Draw the PdfGrid. PdfGridLayoutResult gridResult1 = pdfGridTable.Draw(page, new PointF(0,10)); //Draw the grid PdfGrid pdfGrid = new PdfGrid(); pdfGrid.RepeatHeader = true; //Adds columns. pdfGrid.Columns.Add(2); //Adds header. pdfGrid.Headers.Add(1); PdfGridRow pdfGridHeader = pdfGrid.Headers[0]; pdfGridHeader.Cells[0].Value = "EMP NAME "; pdfGridHeader.Cells[1].Value = "ID"; //Add rows. for (var i = 0; i < 30; ++i) { PdfGridRow pdfGridRow = pdfGrid.Rows.Add(); pdfGridRow.Cells[0].Value = "John"; pdfGridRow.Cells[1].Value = "1795"; } //Get temp result of PDF grid for header and first row PdfGridLayoutResult tempResult1 = GettempHeaderandRowLayoutResult(pdfGrid); float bottom = gridResult1.Bounds.Bottom; pdfPage = CheckPage(pdfDocument, gridResult1, tempResult1); if (pdfPage != gridResult1.Page) { bottom = 0; } //Draw the PdfGrid. PdfGridLayoutResult gridResult2 = pdfGrid.Draw(pdfPage, new PointF(0, bottom + 10)); pdfDocument.Save("sample.pdf"); pdfDocument.Close(true); }
Sample link:
https://www.syncfusion.com/downloads/support/directtrac/general/ze/PdfSample-1123943813