【问题标题】:Check if Adobe Reader is installed before using it使用前检查是否安装了 Adob​​e Reader
【发布时间】:2017-01-05 00:53:40
【问题描述】:

我希望能够让我的应用程序检查是否安装了 Adob​​e Reader。 如果是,我希望我的程序使用它来显示 PDF,如果不是,我想使用我的免费(有限)阅读器控件来显示 PDF。

任何建议

编辑: 我的问题似乎有点宽泛 所以基本上我正在尝试执行以下操作

Try
   Dim AcroDisplay As New AxAcroPDFLib.AxAcroPDF

   AcroDisplay.Left = 50
   AcroDisplay.Top = 50
   AcroDisplay.Width = 200
   AcroDisplay.Height = 500
   me.Controls.Add(AcroDisplay)
   MsgBox("Acro Added")
Catch ex As Exception
   MsgBox("Acro Not installed")
   ''Load Alternate PDF viewer (Spire.pdf Free)
End Try

但是,当未安装 Acrobat 而不是转到 catch 语句时,它只会显示错误“无法加载程序集”,然后退出子

我想要的是,如果没有安装 acrobat 控件,它不会显示和错误,而是只加载备用 pdf 查看器

有没有办法在尝试加载之前检查 AxAcroPDFLib.AxAcroPDF?

希望这能让事情更清楚

编辑 2: 在搜索和搞砸之后,我发现了两种可能的方法,我可以做到这一点 但是我都无法在 VB.net 中找到如何做到这一点

首先 在可用的命名空间中查找 AxAcroPDFLib.AxAcroPDF 找到 C# 示例,但我不知道如何将其更改为 Vb.net C# - How to check if namespace, class or method exists in C#??

第二 添加未处理的异常处理程序 还找到了一些示例,但似乎没有一个有效

任何人都可以将我引导到这些选项中的一个(或两个)的工作示例

【问题讨论】:

  • 即使他们没有 Adob​​e Reader(通常不太可能),他们也很可能有一个可以显示 pdf 的网络浏览器。你有没有想过那样做,my free (limited) reader control 那里有很多,为什么要重新发明轮子?我也很好奇您是如何创建自己的 pdf 查看器控件...
  • 我曾考虑使用网络浏览器打开 pdf,但这不适合我的需要,我也没有自己制作,我使用的是 spire.pdf,有 10页数限制和一些 pdf 超过 10 页,我并不是真的在寻找替代方法来做到这一点,但如果可能的话。在最坏的情况下,我可以用我的程序重新编辑 adobe reader

标签: vb.net pdf adobe controls reader


【解决方案1】:

设法找到一个可行的解决方案,并没有按照我最初的想法工作,但它确实工作得很好

我使用了以下代码

    Dim AdobeSoftwares As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey("ADOBE")
    If AdobeSoftwares Is Nothing Then
        'MessageBox.Show("No Adobe Software")
        Dim PdfDisplay As New PdfiumViewer.PdfViewer 
        PDFControl = "Pdfium"
    Else
        If Not Array.IndexOf(AdobeSoftwares.GetSubKeyNames, "Acrobat Reader") = -1 Then
            'MessageBox.Show("Adobe Reader Installed")
            Dim PdfDisplay As New AxAcroPDFLib.AxAcroPDF
            PDFControl = "Acrobat"
        Else
            'MessageBox.Show("Adobe Reader Not Installed")
            Dim PdfDisplay As New PdfiumViewer.PdfViewer
            PDFControl = "Pdfium"
        End If
    End If

然后在我的显示代码中,我只是查看正在使用的“PDFControl”并运行相关代码以显示在该显示中

所以现在如果安装了 adobe reader,我将使用它的控件,如果没有,我将使用免费(但功能较少)的控件来显示 PDF 文件 所以希望如果其他人正在考虑做与我类似的事情,那么他们可以

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-02
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多