Beispiel #1
0
        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);
        }