有没有办法查询IE插件(Adobe Reader)的状态?我有一种情况,我们通过标签页托管的嵌入式浏览器(基于我的研究的首选模式)向用户呈现许多多页报告。当用户导航离开报表时,通常会修改数据,然后返回重新初始化的Adobe 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(); }
}
}
答案 0 :(得分:3)
如果您的用户群已标准化为一个版本的Acrobat或持续更新到最新和最好的Acrobat,另一种解决方案是消除webbrowser控件并添加对AcroPDF / AxAcroPDF库/活动x控件的引用,从窗体。在过去的6年里,我在我的公司里使用过它,并且它完美无缺。