无论是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设置文档属性?我无法弄清楚导致问题的原因。
我想搜索一个字符串,然后突出显示它。
非常感谢。