3

有什么方法可以查询 IE 插件(Adobe Reader)的状态吗?我有一种情况,我们通过标签页托管的嵌入式浏览器(基于我的研究的首选模式)向用户呈现许多多页报告。当用户离开报告时,通常是为了修改数据,他们返回到重新初始化的 Adob​​e Reader。这意味着它们的位置已丢失,扩展的书签节点已折叠。

下面是一个简化的代码片段,我希望它能够充分表达我的问题的本质。

Public partial class ReportView : UserControl
{ 
    private System.Windows.Forms.WebBrowser webBrowser; 
    private MyNamespace.ReportGenerator reportGen;  
    private String currentPDFtempPath; 

    public ReportView() 
    {
        InitializeComponent();
        this.Leave += (o, e) => { /*how can I save current place in pdf?*/ };
        this.Enter += (o, e) => { /*return user last place in large pdf*/ };
    }

    public void ViewReport(string reportName)
    {
        currentPDFtempPath = reportGen.GetReport(reportName);
        webBrowser.Navigate(currentPDFtempPath);
    }

    private void RefreshReport()
    {
        webBrowser.Navigate(currentPDFtempPath); /*reinitializes Adobe Reader*/
    }
}

public class ReportController
{
    private DataModel model;
    private ReportView view;

    ReportController(DataModel m, ReportView v)
    {
        this.model = m;
        this.view = v;

        model.Changed += (o, e) => { view.RefreshReport(); }
    }
}
4

1 回答 1

3

如果您的用户群已标准化为 Acrobat 的一个版本或不断更新到最新最好的 Acrobat,另一种解决方案是消除 Web 浏览器控件并添加对 AcroPDF/AxAcroPDF 库/active x 控件的引用,该控件可在 Windows 中运行形式。在过去的 6 年里,我一直在我的公司中使用它,并且它运行良好。

于 2012-11-13T20:12:51.320 回答