(C#WebBrowser)为什么“WebBrowser.Document”在读取PDF时总是返回null?

时间:2017-01-12 05:54:28

标签: c# pdf webbrowser-control textrange

无论是WPF还是Winform,都没关系,因为我试过了两个,结果是一样的。

我正在使用WebBrower制作PDF阅读器。

首先,我添加了引用和指令“使用mshtml”。 然后我加载了这样的PDf文件:

       OpenFileDialog dlg = new OpenFileDialog() { Filter = "*.pdf(PDF file)|*.pdf" }; ;
        if (dlg.ShowDialog() == DialogResult.OK)
        {
            webBrowser1.Navigate(dlg.FileName);
        }

然后我尝试在WebBrowser中搜索一个不起作用的字符串:

       if (webBrowser1.Document != null)
        {
            IHTMLDocument2 document = webBrowser1.Document.DomDocument as IHTMLDocument2;
            if (document != null)
            {
                IHTMLSelectionObject currentSelection = document.selection;

                IHTMLTxtRange range = currentSelection.createRange() as IHTMLTxtRange;
                if (range != null)
                {
                    const string search = "Privacy";//This string is in the PDF file;

                    if (range.findText(search, search.Length, 2))
                    {
                        range.select();
                    }
                }
            }
        }

我还在这一行设置了一个断点:

  IHTMLSelectionObject currentSelection = document.selection;

但断点从未被触发,这意味着变量“document”始终为null。这是为什么?我是否必须为WebBrowser设置文档属性?我无法弄清楚导致问题的原因。

我想搜索一个字符串,然后突出显示它。

非常感谢。

0 个答案:

没有答案