我想在WinForm上调用COM组件显示PDF(将PDF文件打开并且嵌入到WinForm界面上),遇到下面两个问题,请高人指点.
本机与测试程序的电脑上都正确安装了Adobe Reader 9.问题一:
在调用Adobe PDF Reader组件后,用其LoadFile(string fileName)能正确显示,但如果将程序放到另一台电脑上,即使对方已经安装了Adobe Reader 9,但如果其安装路径与我写程序那台电脑上的路径不一样,整个程序就打不开,什么提示也没有;如果安装路径一样,程序正确运行.问题二:
在调用Microsoft Web Browser组件后,用其Navigate(string uRL)方法后能正确执行,在测试电脑上,如果其PDF程序的安装路径与本机相同,程序正确运行;如果不同,则会弹出Adobe Reader 9的可执行程序,并将指定PDF文件打开(效果就像System.Diagnostics.Process.Start(string fileName)方法一样).
用该组件我测试WORD也同样是这样,WORD如果安装在C盘,无问题,在其它盘就会弹出WORD的执行程序.有人能帮忙给解决下不,非常感谢!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    拖一个Adobe PDF Reader控件到窗体上,双击窗体,在窗体加载时,弹出对话框,加载PDF文件:  
    string fileName = MyOpenFileDialog();  
    axAcroPDF1.LoadFile(fileName);  
    MyOpenFileDialog()函数为:  
      string MyOpenFileDialog()  
      {  
      OpenFileDialog ofd = new OpenFileDialog();  
      ofd.Filter = "PDF文档(*.pdf)|*.pdf";  
      if (ofd.ShowDialog() == DialogResult.OK)  
      {  
      return ofd.FileName;  
      }  
      else  
      {  
      return null;  
      }  
      }  
    http://www.codeproject.com/KB/applications/PDFViewerControl.aspx
      

  2.   

    不错,不会因为路径问题而找不到啊,你PDF文件写的是相对路径还是绝对路径哦~~?
      

  3.   

    不存在找不到的问题,都能打开,只是PDF阅读器安装路径不和我写程序那台电脑上一样的话,在问题一中是程序不能打开,在问题二中是PDF文件不能内嵌到窗体里
      

  4.   

    string fileName = MyOpenFileDialog();   
    axAcroPDF1.LoadFile(fileName);   
    MyOpenFileDialog()函数为:   
      string MyOpenFileDialog()   
      {   
      OpenFileDialog ofd = new OpenFileDialog();   
      ofd.Filter = "PDF文档(*.pdf)|*.pdf";   
      if (ofd.ShowDialog() == DialogResult.OK)   
      {   
      return ofd.FileName;   
      }   
      else   
      {   
      return null;   
      }   
      }   
      

  5.   

    问题解决了  解决的莫名其妙
    我把PDF阅读器卸载后按默认路径安装到C盘(原来装在D盘),问题竟然没有了
    都没有搞懂什么意思.....汗