我的应用程序中有一个webbrowser控件,用于显示已在iTextSharp中创建的pdf文件,并存储在本地硬盘驱动器上。
我希望能够从我的应用程序中导航文件(next,previous,first,last,toc),而不是在浏览器中使用阅读器的内置导航。
我已经看到您可以使用
导航到特定页面Browser.Navigate("filename.pdf#page=?);
这是第一次运行但是当尝试导航到另一个页面时,它会使浏览器完全消失而没有错误。但是,如果我在文件网址上没有#page=?
后缀,我可以毫无问题地重新加载文件。关于这个的任何想法?
或者,在iTextSharp中是否存在向文件中添加内容以允许从外部命令导航的内容?
答案 0 :(得分:1)
Adobe发布的文档中列出了?
字符后使用查询字符串中的参数可用于浏览PDF的所有官方参数:Parameters for Opening PDF Files
您已经提到了page
参数。另一种选择可能是使用命名目的地:nameddest=destination
。在这种情况下,您需要使用iTextSharp将名为destination
的 anchor 添加到文件中。
请注意,并非所有观看者都实现这些参数。 Adobe在Adobe Reader和Adobe Reader插件中支持它们,但无法保证它们可以在pdf.js(Firefox),Pdfium(谷歌浏览器)中使用,...如果使用打开参数时浏览器消失,您可能遇到导致浏览器崩溃的浏览器或查看器插件中的错误。 iTextSharp和iText可能会导致浏览器崩溃; - )
没有其他方法可以从外部应用程序导航PDF。您唯一能做的就是向PDF添加JavaScript,以便始终在同一页面打开。这是使用打开操作完成的。我不认为这可以解决您的问题,因为这意味着您每次要在不同的页面打开时都必须更改PDF文件。