访问WPF WebBrowser控件中的特定PDF页

访问WPF WebBrowser控件中的特定PDF页,wpf,pdf,itextsharp,webbrowser-control,Wpf,Pdf,Itextsharp,Webbrowser Control,我的应用程序中有一个webbrowser控件,用于显示在iTextSharp中创建并本地存储在硬盘上的pdf文件 我希望能够从我的应用程序中导航文件(下一个、上一个、第一个、最后一个、toc),而不是在浏览器中使用阅读器的内置导航 我已经看到,您可以使用 Browser.Navigate("filename.pdf#page=?); 这是第一次使用,但当尝试导航到其他页面时,它会使浏览器完全消失,不会出现任何错误。但是,如果文件url上没有#page=?后缀,则可以毫无问题地重新加载文件。有什

我的应用程序中有一个webbrowser控件,用于显示在iTextSharp中创建并本地存储在硬盘上的pdf文件

我希望能够从我的应用程序中导航文件(下一个、上一个、第一个、最后一个、toc),而不是在浏览器中使用阅读器的内置导航

我已经看到,您可以使用

Browser.Navigate("filename.pdf#page=?);
这是第一次使用,但当尝试导航到其他页面时,它会使浏览器完全消失,不会出现任何错误。但是,如果文件url上没有
#page=?
后缀,则可以毫无问题地重新加载文件。有什么想法吗


或者,在iTextSharp中是否存在向文件中添加某些内容以允许从外部命令对其进行导航的方法?

Adobe发布的文档中列出了可用于使用查询字符串中的参数在PDF中导航的所有官方参数。

您已经提到了
页面
参数。另一个选项可以是使用命名目的地:
nameddest=destination
。在这种情况下,需要使用iTextSharp将名为
destination
的锚添加到文件中

请注意,并非所有查看器都实现这些参数。Adobe在AdobeReader和AdobeReader插件中支持它们,但不能保证它们在pdf.js(Firefox)、Pdfium(Google Chrome)和,。。。如果使用open参数时浏览器消失,则可能是浏览器或查看器插件中的错误导致浏览器崩溃。iTextSharp或iText都可能使浏览器崩溃;-)


没有其他方法可以从外部应用程序导航PDF。您唯一能做的就是将JavaScript添加到PDF中,使其始终在同一页面打开。这是使用打开操作完成的。我认为这并不能解决您的问题,因为这意味着您必须在每次希望在不同页面打开PDF文件时更改它。

谢谢Bruno。令人沮丧的是,逻辑工作正常,但浏览器控件似乎不喜欢重新打开同一个文件。当我尝试从PDF中的链接打开视频文件时,浏览器也会消失。我也有这个问题。