public Dictionary <int, List <Error> > GetErrors()
        {
            ErrorsDict = new Dictionary <int, List <Error> >();

            using (var document = WordprocessingDocument.Open(filePath, true))
            {
                var styles = document.MainDocumentPart.StyleDefinitionsPart.Styles.DocDefaults;
                XmlData = document.MainDocumentPart.Document.Body;

                SetDefaults(styles);
                SetChapters();
                SetAttributes();

                glParameters = new GlobalParameters(Attributes["pgMar"][0],
                                                    Attributes["pgMar"][1],
                                                    Attributes["pgMar"][2],
                                                    Attributes["pgMar"][3]);

                foreach (var chapter in Chapters)
                {
                    var erList = new List <Error>();
                    foreach (var paragraph in chapter.Value.Paragraphs)
                    {
                        erList.AddRange(paragraph.ErrorList);
                    }

                    if (erList.Count > 0)
                    {
                        ErrorsDict.Add(chapter.Key, erList);
                    }
                }

                return(ErrorsDict);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Write docx
        /// </summary>
        /// <param name="bookMark"></param>
        /// <param name="filePath"></param>
        /// <param name="html"></param>
        private void WriteDocx(string bookMark, string filePath, string html)
        {
            try
            {
                string stringToWrite = "<html><head><meta charset=\"UTF-8\"></head><body>" + html + "</body></html>";

                MemoryStream memoryStream = new System.IO.MemoryStream(Encoding.UTF8.GetBytes(stringToWrite));

                using (WordprocessingDocument doc = WordprocessingDocument.Open(filePath, true))
                {
                    MainDocumentPart mainPart = doc.MainDocumentPart;

                    IEnumerable <BookmarkStart> rs = from bm in mainPart.Document.Body.Descendants <BookmarkStart>() where bm.Name == bookMark select bm;

                    DocumentFormat.OpenXml.OpenXmlElement bookmark = rs.SingleOrDefault();

                    if (bookmark != null)
                    {
                        DocumentFormat.OpenXml.OpenXmlElement parent = bookmark.Parent;
                        AltChunk altchunk = new AltChunk();
                        string   chunkId  = bookMark + DateTime.Now.Minute + DateTime.Now.Second + DateTime.Now.Millisecond;
                        altchunk.Id = chunkId;
                        AlternativeFormatImportPart formatImport = doc.MainDocumentPart.AddAlternativeFormatImportPart(AlternativeFormatImportPartType.Html, chunkId);
                        formatImport.FeedData(memoryStream);
                        parent.InsertBeforeSelf(altchunk);
                    }
                }
            }
            catch (Exception ext)
            {
                throw ext;
            }
        }
        private int checkNum; //Delete this

        public Fragment(DocumentFormat.OpenXml.OpenXmlElement data, ITemplate temp, Dictionary <string, List <string> > docDef, int check)
        {
            XmlData     = data;
            template    = temp;
            docDefaults = docDef;
            SetAttributes();
            SetErrors(check);
        }
Esempio n. 4
0
        private int parNum; // Delete this

        public Paragraph(DocumentFormat.OpenXml.OpenXmlElement data, ITemplate temp, Dictionary <string, List <string> > docDef, int num)
        {
            parNum      = num;
            XmlData     = data;
            template    = temp;
            docDefaults = docDef;
            SetFragments();
            SetErrors();
        }
Esempio n. 5
0
        public HtmlElement Handle(DocumentFormat.OpenXml.OpenXmlElement elem, ConvertConfig config)
        {
            HtmlElement no = new HtmlElement("no");

            if ((new Regex("Paragraph")).Match(elem.GetType().ToString()).Success)
            {
                return(this.HandleParagraph((Paragraph)elem, config));
            }
            if ((new Regex("Table")).Match(elem.GetType().ToString()).Success)
            {
                return(this.HandleTable((Table)elem, config));
            }
            return(no);
        }
 private static void ExtractTextContent(List <DocumentFormat.OpenXml.Drawing.Text> textList, DocumentFormat.OpenXml.OpenXmlElement element)
 {
     foreach (DocumentFormat.OpenXml.Drawing.Paragraph para in element.Descendants <DocumentFormat.OpenXml.Drawing.Paragraph>())
     {
         textList.AddRange(para.Elements <DocumentFormat.OpenXml.Drawing.Run>().Where(item => (item != null && item.Text != null && !String.IsNullOrEmpty(item.Text.Text))).Select(item => item.Text));
     }
 }