public static IEnumerable <LineElement> CreateParagraphElements( this Word.Paragraph paragraph, IImageAccessor imageAccessor, IStyleFactory styleFactory) { var runs = paragraph .SelectRuns() .ToStack(); var elements = new List <LineElement>(); while (runs.Count > 0) { var run = runs.Pop(); if (run.IsFieldStart()) { var fieldRuns = new List <Word.Run> { run }; do { run = runs.Pop(); fieldRuns.Add(run); } while (!run.IsFieldEnd()); var field = fieldRuns.CreateField(styleFactory); elements.Add(field); } else { var runElements = run.CreateParagraphElements(imageAccessor, styleFactory); elements.AddRange(runElements); } } return(elements.Union(new[] { ParagraphCharElement.Create(styleFactory.TextStyle) })); }