示例#1
0
        internal override void VisitFootnote(Footnote footnote)
        {
            Document document = footnote.Document;

            ParagraphFormat format = null;

            Style style = document._styles[footnote._style.Value];

            if (style != null)
            {
                format = ParagraphFormatFromStyle(style);
            }
            else
            {
                footnote.Style = StyleNames.Footnote;
                format         = document._styles[StyleNames.Footnote]._paragraphFormat;
            }

            if (footnote._format == null)
            {
                footnote._format         = format.Clone();
                footnote._format._parent = footnote;
            }
            else
            {
                FlattenParagraphFormat(footnote._format, format);
            }
        }
        private static void SetOneRow([JetBrains.Annotations.NotNull] ParagraphFormat format, [JetBrains.Annotations.NotNull] Table table, [ItemNotNull][JetBrains.Annotations.NotNull] string[] values)
        {
            var row = table.AddRow();

            for (var i = 0; i < values.Length; i++)
            {
                var cell = row.Cells[i];
                cell.AddParagraph(values[i]);
                cell.Format = format.Clone();
            }
        }
示例#3
0
        public void MakePage(Document doc, string dstdir, bool requireAll, List <string> pngFiles, Section tocSection)
        {
            var di    = new DirectoryInfo(dstdir);
            var files = di.GetFiles("Persons.*.txt");

            if (files.Length == 0)
            {
                if (requireAll)
                {
                    throw new LPGException("Missing Persons files");
                }
                return;
            }
            var sec = doc.AddSection();
            // Add a single paragraph with some text and format information.
            var para = sec.AddParagraph();

            para.Format.Alignment   = ParagraphAlignment.Justify;
            para.Format.Font.Name   = "Times New Roman";
            para.Format.Font.Size   = 20;
            para.Format.Font.Bold   = true;
            para.Format.SpaceAfter  = "1cm";
            para.Format.SpaceBefore = "1cm";
            para.Format.Font.Color  = Colors.DarkGray;
            para.AddText("Persons");
            ChartPageBase.MakeTocEntry(tocSection, "Persons");
            para.AddBookmark("Persons");
            var format1 = new ParagraphFormat {
                Font = { Size = 14 }, SpaceBefore = "0.2cm", SpaceAfter = "0.2cm", ListInfo = { ListType = ListType.BulletList1 }
            };
            var format2 = new ParagraphFormat {
                Font = { Size = 12 }, ListInfo = { ListType = ListType.BulletList2 }, LeftIndent = "3cm"
            };

            foreach (var file in files)
            {
                var household = file.Name.Substring(file.Name.IndexOf(".", StringComparison.Ordinal) + 1);
                household = household.Substring(0, household.IndexOf(".", StringComparison.Ordinal));
                var para1 = sec.AddParagraph();
                para1.Format.Alignment = ParagraphAlignment.Left;
                para1.Format           = format1.Clone();
                para1.AddText(household);
                var persons = PersonsReader(file.FullName);
                foreach (var person in persons)
                {
                    var para2 = sec.AddParagraph();
                    para2.Format.Alignment = ParagraphAlignment.Left;
                    para2.Format           = format2.Clone();
                    para2.AddText(person);
                }
            }
        }
示例#4
0
        internal override void VisitParagraph(Paragraph paragraph)
        {
            Document document = paragraph.Document;

            ParagraphFormat format = null;

            DocumentObject currentElementHolder = GetDocumentElementHolder(paragraph);
            Style          style = document.styles[paragraph.style.Value];

            if (style != null)
            {
                format = ParagraphFormatFromStyle(style);
            }

            else if (currentElementHolder is Cell)
            {
                paragraph.style = ((Cell)currentElementHolder).style;
                format          = ((Cell)currentElementHolder).format;
            }
            else if (currentElementHolder is HeaderFooter)
            {
                HeaderFooter currHeaderFooter = ((HeaderFooter)currentElementHolder);
                if (currHeaderFooter.IsHeader)
                {
                    paragraph.Style = "Header";
                    format          = document.styles["Header"].paragraphFormat;
                }
                else
                {
                    paragraph.Style = "Footer";
                    format          = document.styles["Footer"].paragraphFormat;
                }

                if (currHeaderFooter.format != null)
                {
                    FlattenParagraphFormat(paragraph.Format, currHeaderFooter.format);
                }
            }
            else if (currentElementHolder is Footnote)
            {
                paragraph.Style = "Footnote";
                format          = document.styles["Footnote"].paragraphFormat;
            }
            else if (currentElementHolder is TextArea)
            {
                paragraph.style = ((TextArea)currentElementHolder).style;
                format          = ((TextArea)currentElementHolder).format;
            }
            else
            {
                if (paragraph.style.Value != "")
                {
                    paragraph.Style = "InvalidStyleName";
                }
                else
                {
                    paragraph.Style = "Normal";
                }
                format = document.styles[paragraph.Style].paragraphFormat;
            }

            if (paragraph.format == null)
            {
                paragraph.format        = format.Clone();
                paragraph.format.parent = paragraph;
            }
            else
            {
                FlattenParagraphFormat(paragraph.format, format);
            }
        }
        private static void MakeTable([JetBrains.Annotations.NotNull] string headline, [JetBrains.Annotations.NotNull] Section sec, [JetBrains.Annotations.NotNull] out ParagraphFormat format, [JetBrains.Annotations.NotNull] out Table table,
                                      TableColumnType tableColumnType)
        {
            var para = sec.AddParagraph();

            para.Format.Alignment   = ParagraphAlignment.Justify;
            para.Format.Font.Name   = "Times New Roman";
            para.Format.Font.Size   = 16;
            para.Format.Font.Bold   = true;
            para.Format.SpaceAfter  = "0.5cm";
            para.Format.SpaceBefore = "1cm";
            para.Format.Font.Color  = Colors.DarkGray;
            para.AddText(headline);

            format = new ParagraphFormat {
                Font = { Size = 12 }, SpaceBefore = "0.2cm", SpaceAfter = "0.2cm"
            };
            table = new Table {
                Borders = { Width = 0.75 }
            };
            int[]    measurements;
            bool[]   alignments;
            string[] headers;
            switch (tableColumnType)
            {
            case TableColumnType.Values:
                alignments   = new[] { false, true, false };
                measurements = new[] { 5, 5, 5 };
                headers      = new[] { "Load Type", "Value", "Unit" };
                break;

            case TableColumnType.SettlementValues:
                measurements = new[] { 4, 5, 3, 3 };
                alignments   = new[] { false, false, true, false };
                headers      = new[] { "Household", "Load Type", "Value", "Unit" };
                break;

            case TableColumnType.MinMax:
                measurements = new[] { 5, 3, 3, 3 };
                alignments   = new[] { false, true, true, false };
                headers      = new[] { "Household", "Minimum", "Maximum", "Unit" };
                break;

            default: throw new LPGException("Forgotten TableColumnType");
            }

            for (var i = 0; i < measurements.Length; i++)
            {
                var column0 = table.AddColumn(Unit.FromCentimeter(measurements[i]));
                if (alignments[i])
                {
                    column0.Format.Alignment = ParagraphAlignment.Right;
                }
                else
                {
                    column0.Format.Alignment = ParagraphAlignment.Left;
                }
            }

            var row = table.AddRow();

            row.Shading.Color = Colors.AliceBlue;
            for (var i = 0; i < headers.Length; i++)
            {
                var cell = row.Cells[i];
                cell.AddParagraph(headers[i]);
                cell.Format = format.Clone();
            }
        }