Пример #1
0
 internal PdfRow(PdfTable owner, int index)
 {
     this.owner       = owner;
     this.index       = index;
     this.startRow    = index;
     this.endRow      = index;
     this.startColumn = 0;
     this.endColumn   = this.owner.columns - 1;
 }
Пример #2
0
 internal PdfColumn(PdfTable owner, int index)
 {
     this.owner       = owner;
     this.index       = index;
     this.startColumn = index;
     this.endColumn   = index;
     this.startRow    = 0;
     this.endRow      = this.owner.rows - 1;
 }
Пример #3
0
        internal PdfCellRange(PdfTable owner, int startRow, int startColumn, int endRow, int endColumn)
        {
            object o = owner.Cell(startRow, startColumn);

            o                = owner.Cell(endRow, endColumn);
            this.owner       = owner;
            this.startColumn = startColumn;
            this.startRow    = startRow;
            this.endColumn   = endColumn;
            this.endRow      = endRow;
        }
Пример #4
0
 internal PdfCell(PdfTable owner, int row, int column, ContentAlignment ContentAlignment, Color ForegroundColor, Font Font, double CellPadding)
 {
     this.colSpan          = 1;
     this.rowSpan          = 1;
     this.row              = row;
     this.stringFormat     = "{0}";
     this.transparent      = true;
     this.Font             = Font;
     this.owner            = owner;
     this.column           = column;
     this.ContentAlignment = ContentAlignment;
     this.foregroundColor  = ForegroundColor;
     this.cellPadding      = CellPadding;
 }
Пример #5
0
        /// <summary>
        /// Instantiates a new PdfTable setting the default specs.
        /// </summary>
        /// <param name="DefaultFont"></param>
        /// <param name="Rows"></param>
        /// <param name="Columns"></param>
        /// <param name="CellPadding"></param>
        /// <returns></returns>
        public PdfTable NewTable(Font DefaultFont, int Rows, int Columns, double CellPadding)
        {
            if (Rows <= 0)
            {
                throw new Exception("Rows must be grater than zero.");
            }
            if (Columns <= 0)
            {
                throw new Exception("Columns must be grater than zero.");
            }
            if (CellPadding < 0)
            {
                throw new Exception("CellPadding must be non-negative.");
            }
            PdfTable pt = new PdfTable(this, ContentAlignment.TopCenter, DefaultFont, Color.Black, Rows
                                       , Columns, CellPadding);

            pt.header = new PdfTable(this, ContentAlignment.MiddleCenter, DefaultFont, Color.Black, 1
                                     , Columns, CellPadding);

            return(pt);
        }
Пример #6
0
        public static Stream ListToPdf(object list, Dictionary <string, string> titles, bool IsExportAllCol)
        {
            DataTable dt       = ListToDataTable(list, titles, IsExportAllCol, string.Empty);
            var       pdfTitle = dt.TableName;

            // Starting instantiate the document.
            // Remember to set the Docuement Format. In this case, we specify width and height.
            PdfDocument myPdfDocument = new PdfDocument(PdfDocumentFormat.InCentimeters(21, 29.7));

            // Now we create a Table of 100 lines, 6 columns and 4 points of Padding.
            PdfTable myPdfTable = myPdfDocument.NewTable(new Font("Arial", 12), dt.Rows.Count, dt.Columns.Count, 4);

            // Importing datas from the datatables... (also column names for the headers!)
            //myPdfTable.ImportDataTable(Table);
            myPdfTable.ImportDataTable(dt);

            // Sets the format for correct date-time representation
            //myPdfTable.Columns[2].SetContentFormat("{0:dd/MM/yyyy}");

            // Now we set our Graphic Design: Colors and Borders...
            myPdfTable.HeadersRow.SetColors(Color.White, Color.Navy);
            myPdfTable.SetColors(Color.Black, Color.White, Color.Gainsboro);
            myPdfTable.SetBorders(Color.Black, 1, BorderType.CompleteGrid);

            //// With just one method we can set the proportional width of the columns.
            //// It's a "percentage like" assignment, but the sum can be different from 100.
            //myPdfTable.SetColumnsWidth(new int[] { 5, 25, 16, 20, 20, 15 });

            //// You can also set colors for a range of cells, in this case, a row:
            //myPdfTable.Rows[7].SetColors(Color.Black, Color.LightGreen);

            // Now we set some alignment... for the whole table and then, for a column.
            myPdfTable.SetContentAlignment(ContentAlignment.MiddleCenter);
            myPdfTable.Columns[1].SetContentAlignment(ContentAlignment.MiddleLeft);

            // Here we start the loop to generate the table...
            while (!myPdfTable.AllTablePagesCreated)
            {
                // we create a new page to put the generation of the new TablePage:
                PdfPage      newPdfPage      = myPdfDocument.NewPage();
                PdfTablePage newPdfTablePage = myPdfTable.CreateTablePage(new PdfArea(myPdfDocument, 48, 120, 500, 670));

                // we also put a Label
                PdfTextArea pta = new PdfTextArea(new Font("Arial", 26, FontStyle.Bold), Color.Red
                                                  , new PdfArea(myPdfDocument, 0, 20, 595, 120), ContentAlignment.MiddleCenter, pdfTitle);

                // nice thing: we can put all the objects in the following lines, so we can have
                // a great control of layer sequence...
                newPdfPage.Add(newPdfTablePage);
                newPdfPage.Add(pta);

                // we save each generated page before start rendering the next.
                newPdfPage.SaveToDocument();
            }


            //myPdfDocument.SaveToFile("Example1.pdf");
            var stream = new MemoryStream();

            myPdfDocument.SaveToStream(stream);
            return(stream);
        }