コード例 #1
0
        private static void CreateSectionFourExample001(PdfBuilder pdfBuilder, MarginInfo parentPadding)
        {
            const string columnWidths = "350 100";
            var          descriptions = new List <string[]> {
                new [] { "[ex code 01]", "ex foo", "cm" }, new [] { "[ex code 02]", "ex foo", "mm" }
            };

            if (descriptions.IsAny())
            {
                // Create an inner table
                var sectionFourExampleTable = pdfBuilder.CreateInnerTable(
                    columnWidths,
                    keepContentTogether: true);

                // Create inner table row
                var projectFundedServicesRow = pdfBuilder.CreateInnerTableRow(sectionFourExampleTable, parentPadding);

                // Create Header Cell Titles
                pdfBuilder.CreateInnerTableItemCells(
                    projectFundedServicesRow,
                    cellContent: new[] {
                    new DisplayCell {
                        Content = "Example Code", IsHeader = true
                    },
                    new DisplayCell {
                        Content = "Example Measure", IsHeader = true
                    }
                });

                // create a row for each description
                foreach (var item in descriptions)
                {
                    pdfBuilder.CreateInnerTableItemCells(
                        sectionFourExampleTable.Rows.Add(),
                        cellContent: new[] {
                        new DisplayCell {
                            Content = item[0] + " - " + item[1]
                        },
                        new DisplayCell {
                            Content = item[2]
                        }
                    });
                }
            }
            pdfBuilder.BlankRow();
        }
コード例 #2
0
        private static void CreateSectionFiveExample001(PdfBuilder pdfBuilder, MarginInfo parentPadding)
        {
            var secionFiveExampleTable = pdfBuilder.CreateOuterTable(
                "140 310",
                Resources.ArialFont,
                PdfBuilder.DefaultHeadingTwoFontSize,
                parentPadding,
                keepContentTogether: true);

            // create table row heading
            pdfBuilder.CreateOuterTableRowHeading(
                secionFiveExampleTable,
                "Example Section 5 Heading");

            pdfBuilder.BlankRow(secionFiveExampleTable);

            // Create dates
            var exampleItem01Row = secionFiveExampleTable.Rows.Add();

            pdfBuilder.CreateOuterTableRowCells(
                exampleItem01Row,
                "Example item 01",
                DateTime.Now.ToShortDateString(),
                padding: PdfBuilder.DefaultSubHeadingBottomPadding);

            var exampleItem02Row = secionFiveExampleTable.Rows.Add();

            pdfBuilder.CreateOuterTableRowCells(
                exampleItem02Row,
                "Example item 02",
                "example info",
                padding: PdfBuilder.DefaultSubHeadingBottomPadding);

            var exampleItem03Row = secionFiveExampleTable.Rows.Add();

            pdfBuilder.CreateOuterTableRowCells(
                exampleItem03Row,
                "Example item 03",
                "example info",
                padding: PdfBuilder.DefaultSubHeadingBottomPadding);

            var exampleItem04Row = secionFiveExampleTable.Rows.Add();

            pdfBuilder.CreateOuterTableRowCells(
                exampleItem04Row,
                "Example item 04",
                "example info",
                padding: PdfBuilder.DefaultSubHeadingBottomPadding);

            pdfBuilder.BlankRow(secionFiveExampleTable);

            // create an overly complex arrangement of data and values to demonstrate the flexibility of the aspose pdf builder.
            var orderedNumbers      = new[] { "0001", "0002", "0003" };
            var examplePairsAsGroup = new List <KeyValuePair <string, decimal> >
            {
                new KeyValuePair <string, decimal>(orderedNumbers[0], 10000),
                new KeyValuePair <string, decimal>(orderedNumbers[0], 10000),
                new KeyValuePair <string, decimal>(orderedNumbers[0], 10000),
                new KeyValuePair <string, decimal>(orderedNumbers[1], 20000),
                new KeyValuePair <string, decimal>(orderedNumbers[1], 20000),
                new KeyValuePair <string, decimal>(orderedNumbers[1], 20000),
                new KeyValuePair <string, decimal>(orderedNumbers[2], 30000),
                new KeyValuePair <string, decimal>(orderedNumbers[2], 30000),
                new KeyValuePair <string, decimal>(orderedNumbers[2], 30000)
            }.OrderBy(x => x.Key)
            .GroupBy(x => x.Key)
            .ToArray();

            // calculate totals - terrible example...
            var orderedNumbers0001   = examplePairsAsGroup.SelectMany(x => x).Where(x => x.Key == orderedNumbers[0]).ToArray();
            var orderedNumbers0002   = examplePairsAsGroup.SelectMany(x => x).Where(x => x.Key == orderedNumbers[1]).ToArray();
            var orderedNumbers0003   = examplePairsAsGroup.SelectMany(x => x).Where(x => x.Key == orderedNumbers[2]).ToArray();
            var exampleTotalsAsGroup = new List <KeyValuePair <string, decimal> >
            {
                new KeyValuePair <string, decimal>(orderedNumbers[0], orderedNumbers0001[0].Value + orderedNumbers0002[0].Value + orderedNumbers0003[0].Value),
                new KeyValuePair <string, decimal>(orderedNumbers[1], orderedNumbers0001[1].Value + orderedNumbers0002[1].Value + orderedNumbers0003[1].Value),
                new KeyValuePair <string, decimal>(orderedNumbers[2], orderedNumbers0001[2].Value + orderedNumbers0002[2].Value + orderedNumbers0003[2].Value)
            }.OrderBy(x => x.Key)
            .GroupBy(x => x.Key)
            .ToArray();

            var useWidths = "53 80 79 79 80 79"; // remember - a user can specify less or more columns and pass them into CreateInnerTable.
            // Create an inner table
            var exampleInnerTable = pdfBuilder.CreateInnerTable(useWidths, secionFiveExampleTable);

            // Create Header Inner Table row
            var exampleInnerHeaderRow = pdfBuilder.CreateInnerTableRow(exampleInnerTable, parentPadding);

            // Create Header Cell Titles
            var titles = new List <HeaderCell> {
                new HeaderCell {
                    Content = "Side Content Name"
                }
            };
            var additionalNames = new [] { "example 01", "example 02", "example 03" }.GroupBy(x => x).ToArray();

            titles.AddRange(additionalNames.Select(name => new HeaderCell {
                Content = "ex name " + name.Key
            }));
            titles.Add(new HeaderCell {
                Content = "Total"
            });
            pdfBuilder.CreateInnerTableHeaderCells(exampleInnerHeaderRow, titles.ToArray());

            // Display example pairs by their ordered numbers
            foreach (var epag in examplePairsAsGroup)
            {
                var cellContentByFy = new List <DisplayCell> {
                    new DisplayCell {
                        Content = epag.Key, IsDate = true
                    }
                };
                cellContentByFy.AddRange(epag.Select(x => new DisplayCell {
                    Content = x.Value.ToString("C"), IsCurrency = true
                }).ToArray());
                cellContentByFy.Add(new DisplayCell {
                    Content = epag.Sum(x => x.Value).ToString("C"), IsCurrency = true
                });

                var itemRow = pdfBuilder.CreateInnerTableRow(exampleInnerTable, parentPadding);
                pdfBuilder.CreateInnerTableItemCells(
                    itemRow,
                    cellContent: cellContentByFy.ToArray());
            }

            // Display Totals
            var cellContentTotals = new List <DisplayCell> {
                new DisplayCell {
                    Content = "Totals", IsHeader = true
                }
            };

            cellContentTotals.AddRange(exampleTotalsAsGroup.Select(x => new DisplayCell {
                Content = x.Sum(sum => sum.Value).ToString("C"), IsTotal = true, IsCurrency = true
            }).ToArray());
            cellContentTotals.Add(new DisplayCell {
                Content = exampleTotalsAsGroup.Sum(sum => sum.Sum(x => x.Value)).ToString("C"), IsTotal = true, IsCurrency = true
            });
            var projectCostCentreTotalRow = pdfBuilder.CreateInnerTableRow(exampleInnerTable, PdfBuilder.DefaultOuterPadding);

            pdfBuilder.CreateInnerTableItemCells(
                projectCostCentreTotalRow,
                cellContent: cellContentTotals.ToArray());

            pdfBuilder.BlankRow();
        }
コード例 #3
0
        private static void CreateSectionThreeExample001(PdfBuilder pdfBuilder, MarginInfo parentPadding)
        {
            const bool keepContentTogether = true;
            const bool isKeptTogether      = false;
            const bool isKeptWithNext      = false;
            var        title = "Simple list example 01";

            string[] descriptions = { "example desc 01", "example desc 02", "example desc 03", "example desc 04" };
            if (descriptions.IsAny())
            {
                // Create an inner table
                var simpleThreeColumnInnerTable = pdfBuilder.CreateInnerTable(
                    Resources.ColumnSpanThreeWidth,
                    isKeptTogether: isKeptTogether,
                    isKeptWithNext: isKeptWithNext,
                    keepContentTogether: keepContentTogether);

                // Create inner table row
                var simpleThreeColumnInnerTableRow = pdfBuilder.CreateInnerTableRow(simpleThreeColumnInnerTable, parentPadding);

                // Create Header Cell Title
                pdfBuilder.CreateInnerTableItemCells(
                    simpleThreeColumnInnerTableRow,
                    parentPadding,
                    cellContent: new DisplayCell {
                    Content = title, IsHeader = true
                });

                // create a row for each description
                foreach (var description in descriptions)
                {
                    pdfBuilder.CreateInnerTableItemCells(
                        simpleThreeColumnInnerTable.Rows.Add(),
                        parentPadding,
                        cellContent: new DisplayCell {
                        Content = description
                    });
                }
            }
            pdfBuilder.BlankRow();

            title        = "Simple list example 02";
            descriptions = new[] { "example desc 05", "example desc 06", "example desc 07", "example desc 08" };
            if (descriptions.IsAny())
            {
                // Create an inner table
                var simpleThreeColumnInnerTable = pdfBuilder.CreateInnerTable(
                    Resources.ColumnSpanThreeWidth,
                    isKeptTogether: isKeptTogether,
                    isKeptWithNext: isKeptWithNext,
                    keepContentTogether: keepContentTogether);

                // Create inner table row
                var simpleThreeColumnInnerTableRow = pdfBuilder.CreateInnerTableRow(simpleThreeColumnInnerTable, parentPadding);

                // Create Header Cell Title
                pdfBuilder.CreateInnerTableItemCells(
                    simpleThreeColumnInnerTableRow,
                    parentPadding,
                    cellContent: new DisplayCell {
                    Content = title, IsHeader = true
                });

                // create a row for each description
                foreach (var description in descriptions)
                {
                    pdfBuilder.CreateInnerTableItemCells(
                        simpleThreeColumnInnerTable.Rows.Add(),
                        parentPadding,
                        cellContent: new DisplayCell {
                        Content = description
                    });
                }
            }
            pdfBuilder.BlankRow();
        }
コード例 #4
0
        private static void CreateSectionTwoExample001(PdfBuilder pdfBuilder, MarginInfo parentPadding)
        {
            const VerticalAlignmentType parentVerticalAlignment = VerticalAlignmentType.Center;
            const bool   keepContentTogether = false;
            const bool   isKeptTogether      = false;
            const bool   isKeptWithNext      = false;
            const string exampleDocWidths    = "100 250 100";
            var          exampleDocPadding   = new MarginInfo
            {
                Left   = 2,
                Bottom = 2,
                Top    = 2
            };
            var exampleDocs = new List <string[]>
            {
                new[] { "item 1 type", "item 1 desc", "item 1 filename" },
                new[] { "item 2 type", "item 2 desc", "item 2 filename" },
                new[] { "item 3 type", "item 3 desc", "item 3 filename" },
                new[] { "item 4 type", "item 4 desc", "item 4 filename" },
            };

            if (exampleDocs.IsAny())
            {
                // Create an inner table
                var exampleDocumentTable = pdfBuilder.CreateInnerTable(
                    exampleDocWidths,
                    isKeptTogether: isKeptTogether,
                    isKeptWithNext: isKeptWithNext,
                    keepContentTogether: keepContentTogether);

                // Create inner table row
                var docRow = pdfBuilder.CreateInnerTableRow(exampleDocumentTable, exampleDocPadding);

                // Create inner table cells
                pdfBuilder.CreateInnerTableHeaderCells(docRow, new[]
                {
                    new HeaderCell {
                        Content = "Example 001 doc type"
                    },
                    new HeaderCell {
                        Content = "Example 001 doc desc"
                    },
                    new HeaderCell {
                        Content = "Example 001 doc filename"
                    }
                });

                // format rows for each document
                foreach (var document in exampleDocs)
                {
                    var itemRow = exampleDocumentTable.Rows.Add();
                    pdfBuilder.CreateInnerTableItemCells(
                        itemRow,
                        exampleDocPadding,
                        verticalAlignment: parentVerticalAlignment,
                        cellContent: new[]
                    {
                        new DisplayCell {
                            Content = document[0].Trim()
                        },
                        new DisplayCell {
                            Content = document[1].Trim()
                        },
                        new DisplayCell {
                            Content = document[2].Trim()
                        }
                    });
                }
            }
            pdfBuilder.BlankRow();
        }