Exemple #1
0
        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);
        }