private int ParsePage(List <Item> results, Application app, Document doc, int p, int lastPageEnd) { ColorConsole.Write(p.ToString().Green()); Range pageBreakRange = null; try { pageBreakRange = app.Selection.GoToNext(WdGoToItem.wdGoToPage); var links = doc.Range(lastPageEnd, pageBreakRange.End).Hyperlinks; if (links.Count > 0) { ParseLinks(results, p, links.Cast <Hyperlink>()?.Select(link => { var text = link.Type == MsoHyperlinkType.msoHyperlinkRange ? link.TextToDisplay?.Trim() : string.Empty; var item = new Item(string.Empty, text, link.Address); link.NAR(); return(item); })?.ToList()); links.NAR(); } lastPageEnd = pageBreakRange.End; } catch (Exception ex) { ColorConsole.WriteLine(ex.Message.White().OnRed()); lastPageEnd++; // TODO: Check } finally { pageBreakRange.NAR(); } return(lastPageEnd); }