Esempio n. 1
0
        private void WriteReport(Action <string> descriptionText, List <string> metaDataSelectedItems, List <string> bodySelectedItems, bool includeAttachments, WorkItem onDateItem, int hierarchyLevel = -1)
        {
            WdBuiltinStyle style = hierarchyLevel != -1 ? ParseEnum <WdBuiltinStyle>(string.Format("wdStyleHeading{0}", hierarchyLevel)) : WdBuiltinStyle.wdStyleHeading1;

            OfficeHelper.SetText(ref document, string.Format("{0} ", onDateItem.Title), style);
            WriteReportMetadata(metaDataSelectedItems, onDateItem.Fields);
            WriteReportBodyData(bodySelectedItems, onDateItem.Fields, descriptionText);
            if (includeAttachments)
            {
                InsertAttachment(onDateItem.Attachments);
            }
        }
Esempio n. 2
0
 private WdBuiltinStyle GetNextHeadingStyle(WdBuiltinStyle currentStyle)
 {
     if (currentStyle == WdBuiltinStyle.wdStyleHeading1)
     {
         return(WdBuiltinStyle.wdStyleHeading2);
     }
     if (currentStyle == WdBuiltinStyle.wdStyleHeading2)
     {
         return(WdBuiltinStyle.wdStyleHeading3);
     }
     if (currentStyle == WdBuiltinStyle.wdStyleHeading3)
     {
         return(WdBuiltinStyle.wdStyleHeading4);
     }
     if (currentStyle == WdBuiltinStyle.wdStyleHeading4)
     {
         return(WdBuiltinStyle.wdStyleHeading5);
     }
     if (currentStyle == WdBuiltinStyle.wdStyleHeading5)
     {
         return(WdBuiltinStyle.wdStyleHeading6);
     }
     return(WdBuiltinStyle.wdStyleHeading7);
 }
Esempio n. 3
0
        private TreeNode[] FindStylesBelow(WdBuiltinStyle wdCurrent, WdBuiltinStyle wdSearch, Paragraph currentPara)
        {
            var children = new List <TreeNode>();
            var para     = currentPara.Next(1);

            do
            {
                if (_ds.CheckLocalizedStyleName(para.get_Style(), wdCurrent))
                {
                    break;
                }
                TreeNode[] grandChildren = null;
                // Add sections as subnodes
                if (_ds.CheckLocalizedStyleName(para.get_Style(), wdSearch))
                {
                    var t = new TreeNode {
                        Text       = para.Range.Text.Trim(),
                        ImageIndex = 4,
                        Tag        = para
                    };
                    grandChildren = FindStylesBelow(wdSearch, GetNextHeadingStyle(wdSearch), para);
                    t.Nodes.AddRange(grandChildren);
                    children.Add(t);
                }
                var hasHeading = grandChildren != null && grandChildren.Any(t =>
                                                                            _ds.CheckLocalizedStyleName(((Paragraph)t.Tag).get_Style(), WdBuiltinStyle.wdStyleHeading1) ||
                                                                            _ds.CheckLocalizedStyleName(((Paragraph)t.Tag).get_Style(), WdBuiltinStyle.wdStyleHeading2) ||
                                                                            _ds.CheckLocalizedStyleName(((Paragraph)t.Tag).get_Style(), WdBuiltinStyle.wdStyleHeading3) ||
                                                                            _ds.CheckLocalizedStyleName(((Paragraph)t.Tag).get_Style(), WdBuiltinStyle.wdStyleHeading4) ||
                                                                            _ds.CheckLocalizedStyleName(((Paragraph)t.Tag).get_Style(), WdBuiltinStyle.wdStyleHeading5));
                if (!hasHeading)
                {
                    // Leaf Level
                    // add regular elements as nodes
                    string   n1          = para.get_Style().NameLocal.ToString();
                    TreeNode snippetNode = null;
                    switch (n1)
                    {
                    case "FigureCaption":
                        // images only if NOT in table
                        if (para.Range.Tables.Count == 0)
                        {
                            snippetNode = new TreeNode {
                                Text       = para.Range.Text.Trim(),                                   // caption after
                                ImageIndex = 2,
                                Tag        = para,
                                ForeColor  = Color.Blue
                            };
                        }
                        break;

                    case "ListingCaption":
                        snippetNode = new TreeNode {
                            Text       = para.Range.Text.Trim(),                               // caption before
                            ImageIndex = 1,
                            Tag        = para,
                            ForeColor  = Color.Blue
                        };
                        break;

                    case "TableCaption":
                        snippetNode = new TreeNode {
                            Text       = para.Range.Text.Trim(),                               // caption before
                            ImageIndex = 3,
                            Tag        = para,
                            ForeColor  = Color.Blue
                        };
                        break;

                    default:
                        if (_ds.CheckLocalizedStyleName(para.get_Style(), WdBuiltinStyle.wdStyleNormal))
                        {
                            // text only if NOT in table
                            if (para.Range.Tables.Count == 0)
                            {
                                if (para.Range.Text.Trim().Length > 1)
                                {
                                    snippetNode = new TreeNode {
                                        Text       = para.Range.Text.Trim().Substring(0, Math.Min(para.Range.Text.Trim().Length - 1, 20)),                                           // caption
                                        ImageIndex = 0,
                                        Tag        = para,
                                        ForeColor  = Color.Black
                                    };
                                    snippetNode.NodeFont = new System.Drawing.Font(treeViewChapter.Font.FontFamily, treeViewChapter.Font.Size * 0.9f);
                                }
                            }
                        }
                        break;
                    }
                    if (snippetNode != null)
                    {
                        children.Add(snippetNode);
                    }
                }
                // proceed
                para = para.Next(1);
            } while (para != null);
            return(children.ToArray());
        }