强制webbrowser仅在Adobe Acrobat Reader上显示PDF文件

时间:2016-11-10 20:46:37

标签: vb.net

我使用iTextsharp创建PDF,然后在webbrowser控件中显示PDF的预览。在预览中,用户可以使用默认的Adobe Reader按钮

进行保存或打印

使用Adobe Reader作为默认PDF查看器处理Windows x64位一切正常。

Windows x64位上的相同程序,但福昕阅读器作为默认PDF在我的程序之外的完整应用程序窗口上打开福昕阅读器上的文件。

我需要管理它。

我的代码就像

Dim PathToPDF As String
PathToPDF = DirectoryOfMyApp & "\ReportPreview.pdf"
ReportPreviewWebBrowser.Navigate(PathToPDF)

其中DirectoryOfMyApp只获取硬盘的C:或D:字母。

我读了这个链接 How to start an Adobe Reader or Acrobat from VB.NET?

但是像

这样的一行
ReportPreviewWebBrowser.Navigate("acrobat", PathToPDF )

没有用,我认为webbrowser控件无法选择PDF查看器

https://msdn.microsoft.com/es-es/library/system.windows.forms.webbrowser(v=vs.110).aspx

有没有办法将webbrowser设置为仅使用Adobe Acrobat Reader或强制任何其他PDF查看器在Web浏览器控件中显示PDF?

2 个答案:

答案 0 :(得分:2)

我同意Zaggler对此的评论。您正在最终用户计算机上安装的软件上的某个点做出假设。除非您打算将应用程序的PDF查看器作为依赖项安装的一部分或者用于.NET,否则无法保证它们可以使用该程序。你也不能保证它的安装位置。

但是,在VB.NET中可以使用基于Windows的进程进行廉价的黑客攻击。您可以使用ole System.Diagnostics.Process()

ng-model="myItem.qty"

在这个例子中,我做了一个快速文件位置,你可以尝试确保它是一个有效的位置,不会改变或在你的应用程序的运行进程文件夹中。就开发而言,这实际上是低技术,但基本上是说:“在这个位置运行一个进程,任何进程。我不在乎它是什么,使用Windows默认值来确定如何处理它。“

因此,当我在Windows 10开发框中运行它时,它会加载Edge以显示它,在家中它将启动Adobe Viewer。它只是打开文件,主要是操作系统选择使用该文件扩展名的内容。对于强化的代码来说并不是很有魅力或非常好,但是当你想要快速发生的事情时它会起作用。

答案 1 :(得分:0)

不,你不能这样做。

您甚至无法保证安装Adobe Reader。

机器上甚至可能不存在读卡器。它不是内置于Windows中的,并非每个人都使用它。即便如此,FoxIt也不是唯一的选择。一个很重要的是Chrome包含它自己的PDF查看器。