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

ユーザー ベースが 1 つのバージョンの Acrobat に標準化されているか、最新かつ最高の Acrobat に継続的に更新されている場合、別の解決策は、Web ブラウザー コントロールを削除し、Windows から動作する AcroPDF/AxAcroPDF ライブラリ/アクティブ x コントロールへの参照を追加することです。形。私はこれを会社で過去6年間使用しており、完璧に機能しています。

于 2012-11-13T20:12:51.320 に答える