private void DrawTable() { PDPage pDPage; PDDocument pDDocument = new PDDocument(); pDPage = (this.pageSettings.size != null ? new PDPage(this.pageSettings.size.PDFBoxRectangle) : new PDPage()); PDRectangle mediaBox = pDPage.getMediaBox(); int num = this.contents.Count <List <string> >(); int num1 = this.contents.ElementAt <List <string> >(0).Count <string>(); float width = mediaBox.getWidth() - (this.pageSettings.marginLeft + this.pageSettings.marginRight); float single = width / (float)num1; float rowHeight = this.tableSettings.RowHeight; float height = mediaBox.getHeight() - this.pageSettings.marginTop; float single1 = height - this.pageSettings.marginBottom; float single2 = rowHeight * (float)num; int num2 = num; int num3 = 1; int num4 = 0; if (single2 > single1) { num2 = (int)Math.Floor((double)(single1 / rowHeight)); num3 = (int)Math.Ceiling((double)num / (double)num2); single2 = (float)num2 * rowHeight; num4 = num % num2; } int num5 = 0; for (int i = 0; i < num3; i++) { pDPage = (this.pageSettings.size != null ? new PDPage(this.pageSettings.size.PDFBoxRectangle) : new PDPage()); pDDocument.addPage(pDPage); PDPageContentStream pDPageContentStream = new PDPageContentStream(pDDocument, pDPage); if ((i != num3 - 1 ? false : num4 > 0)) { num2 = num4; single2 = rowHeight * (float)num2; } float single3 = height; for (int j = 0; j <= num2; j++) { pDPageContentStream.drawLine(this.pageSettings.marginLeft, single3, this.pageSettings.marginLeft + width, single3); single3 = single3 - rowHeight; } float single4 = this.pageSettings.marginLeft; for (int k = 0; k <= num1; k++) { pDPageContentStream.drawLine(single4, height, single4, height - single2); single4 = single4 + single; } pDPageContentStream.setFont(this.pageSettings.Font.PDFBoxFont, this.pageSettings.FontSize); float cellMargin = this.pageSettings.marginLeft + this.tableSettings.CellMargin; float single5 = height - 15f; for (int l = 0; l < num2; l++) { foreach (string item in this.contents[num5]) { pDPageContentStream.beginText(); pDPageContentStream.newLineAtOffset(cellMargin, single5); pDPageContentStream.showText(item); pDPageContentStream.endText(); cellMargin = cellMargin + single; } single5 = single5 - rowHeight; cellMargin = this.pageSettings.marginLeft + this.tableSettings.CellMargin; num5++; } pDPageContentStream.close(); } pDDocument = PDFHelper.AddTrialStampIfNecessary(pDDocument); pDDocument.save(this.outputPDF); }