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); } }
/// <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); }
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(); }
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)); } }