【问题标题】:axAcroPDF does not display PDF on windows XPaxAcroPDF 在 Windows XP 上不显示 PDF
【发布时间】:2011-07-30 13:55:32
【问题描述】:

我有一个向用户显示 pdf 的 C# windows 窗体应用程序。我像这样使用 axAcroPDF 控件:

AxAcroPDFLib.AxAcroPDF pdfViewer = new AxAcroPDFLib.AxAcroPDF();
...
pdfViewer.loadFile(@"C:\a.pdf");

这在我的电脑和我同事的电脑上都可以正常工作,但只适用于运行 win7 的电脑。在 winXp 机器上尝试时它不起作用,即 loadFile() 返回 false。

有什么想法吗?

【问题讨论】:

    标签: c# pdf windows-xp activex axacropdf


    【解决方案1】:

    AxAcroPDFLib 是否随 Adob​​e Reader 或其他 Adob​​e 产品提供,如果是这样,我猜您需要在目标机器上安装它,检查版本是否兼容?

    并且.. 可以在同一位置看到相同的 PDF(如果那不是示例代码)

    【讨论】:

    • 在我看来,如果 AX 控件在目标机器上不可用,应用程序会生成异常。只能说他们不兼容。但是如何在任何安装了 Adob​​e Reader 的机器上创建一个显示 pdf 的应用程序......??
    • 我猜您需要为每个版本的控件创建 .Net 包装器并检测它是哪一个?或者让用户安装特定版本。另一种选择可能是使用用户计算机上的浏览器而不是在您的应用程序中打开 PDF 以解决任何问题?
    • 我正在尝试使用浏览器的解决方案。但是在装有 XP 的机器上,当将 webBrowser 控件的 Url 分配给 pdf 的文件位置时,它说安全设置不允许文件下载...
    【解决方案2】:

    好的,我通过像这样实现 axHost 来延迟绑定阅读器来解决它:

    public class LateBoundPDFReader : AxHost
    {
        public LateBoundPDFReader()
            : base("{CA8A9780-280D-11CF-A24D-444553540000}")
        {
        }
    }
    

    唯一的问题是,现在我不能在 VS 的设计器中使用它...为什么...?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-22
      • 1970-01-01
      • 2012-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多