2011-04-06 50 views
1

我有一个C#窗体窗体应用程序,显示用户的PDF。我用的是axAcroPDF控制这样的:axAcroPDF没有在Windows XP上显示PDF

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

能正常工作在我的电脑和我的同事,但仅限于谁拥有的win7运行的人。在winXp机器上尝试时,它不起作用,即loadFile()返回false。

任何想法?

回答

0

AxAcroPDFLib是否与Adobe Reader或其他Adobe产品一起提供,如果有的话,我想你会需要安装在目标机器上,检查版本是否兼容?

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

+0

在我看来,如果AX控件在目标机器上不可用,应用程序会产生一个异常。只能是他们不兼容。但是,如何创建一个应用程序,以显示已安装Adobe Reader的任何机器上的pdf ......? – nogola 2011-04-06 07:49:35

+0

我想你会需要为每个版本的控件创建.Net包装并检测它是哪一个?或让用户安装特定版本。另一种选择可能是在用户机器上使用浏览器而不是在应用程序中打开PDF,以解决任何问题? – 2011-04-06 08:31:23

+0

我正在尝试与浏览器的解决方案。但在XP机器上它说安全设置不允许文件下载,将webBrowser控件的Url分配给pdf的文件位置时... – nogola 2011-04-06 08:38:00

0

好吧,我解决它通过后期绑定读者通过实施axHost这样的:

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

唯一的问题是,现在我无法在VS的设计师中使用它......为什么......?

相关问题