Пример #1
0
        static void PdfWithTable()
        {
            // Table
            PdfTable table = new PdfTable(
                style: TableStyle.OnlyRowsBordered,
                fitToDocument: true);

            // THead
            table.THead.Add(new PdfTableHeaderCell("Nummer", Alignment.Left, 2.0));
            table.THead.Add(new PdfTableHeaderCell("Name", Alignment.Left, 4.0));
            table.THead.Add(new PdfTableHeaderCell("Position", Alignment.Left, 2.0));
            table.THead.Add(new PdfTableHeaderCell("GP", Alignment.Center, 2.0));
            table.THead.Add(new PdfTableHeaderCell("G", Alignment.Center, 2.0));
            table.THead.Add(new PdfTableHeaderCell("A", Alignment.Center, 2.0));
            table.THead.Add(new PdfTableHeaderCell("PTS", Alignment.Center, 2.0));
            table.THead.Add(new PdfTableHeaderCell("PIM", Alignment.Center, 2.0));

            // TBody
            PdfTableRow row = new PdfTableRow();

            row.Add(new PdfTableCell("1"));
            row.Add(new PdfTableCell("Aebischer David"));
            row.Add(new PdfTableCell("Goalkeeper"));
            row.Add(new PdfTableCell("65"));
            row.Add(new PdfTableCell("0"));
            row.Add(new PdfTableCell("0"));
            row.Add(new PdfTableCell("0"));
            row.Add(new PdfTableCell("14"));

            table.TBody.Add(row);

            row = new PdfTableRow();

            row.Add(new PdfTableCell("1"));
            row.Add(new PdfTableCell("Aeschlimann Jean-Jaques"));
            row.Add(new PdfTableCell("Forwarder"));
            row.Add(new PdfTableCell("120"));
            row.Add(new PdfTableCell("20"));
            row.Add(new PdfTableCell("15"));
            row.Add(new PdfTableCell("35"));
            row.Add(new PdfTableCell("24"));

            table.TBody.Add(row);

            IPdfTemplate template = new PdfTemplateWithHeaderAndHeading();

            template.Define(
                title: "U20 Junior National Team 2 2 2 2 2 2 2 2 2 2",
                author: "Doc Author",
                subject: "PLAYER STATISTICS - Season 2014 / 2015",
                keywords: "Doc Keywords",
                absolutePathToPdfTemplate: @"D:\DEVELOPMENT\GIT\OPTEN Solutions\tools\Pdf\pdf_template.pdf");

            template.Elements.Add(table);

            // Create
            template.SaveOnDisk(@"C:\Users\cfrei\Desktop\" + template.FileName());
        }
        /// <summary>
        /// Renders the specified PDF styling.
        /// </summary>
        /// <param name="pdfStyling">The PDF styling.</param>
        /// <param name="section">The section.</param>
        public void Render(IPdfStyling pdfStyling, Section section)
        {
            PdfTable table = new PdfTable(
                style: TableStyle.NoSpacing,
                fitToDocument: true);

            // Title rows
            foreach (string title in _titles)
            {
                table.THead.Add(new PdfTableHeaderCell(title.Trim(), true, Alignment.Left));
            }

            // Get the max count

            int maxCount = _addresses.Max(o => o.Count());

            PdfTableRow row;

            string line;
            bool   isBold;

            for (int i = 0; i < maxCount; i++)
            {
                row = new PdfTableRow();
                foreach (IEnumerable <TextLine> addressLine in _addresses)
                {
                    line   = i >= addressLine.Count() ? string.Empty : addressLine.ElementAt(i).Text;
                    isBold = i >= addressLine.Count() ? false : addressLine.ElementAt(i).IsBold;

                    row.Add(new PdfTableCell(text: line, isBold: isBold));
                }

                table.TBody.Add(row);
            }

            table.Render(pdfStyling: pdfStyling, section: section);
        }