ドキュメントを印刷するために、別の WindowsApplication を作成しました。ドキュメントを印刷するたびに、パスをパラメーターとしてそのアプリケーションを呼び出し、印刷アプリケーションには以下のコードがあります。
public static void Print(string path)
{
WebBrowser wb = new WebBrowser();
wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted);
wb.Navigate(path);
}
public static void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser wb = (WebBrowser)sender;
if (wb.ReadyState.Equals(WebBrowserReadyState.Complete))
{
((SHDocVw.WebBrowser)wb.ActiveXInstance).PrintTemplateTeardown += Print_PrintTemplateTeardown;
wb.ShowPrintDialog();
}
}
void Print_PrintTemplateTeardown(object pDisp)
{
_Application.Exit();
}
Print aaplication を呼び出すと、「WebBrowser」コントロールを使用してドキュメントが読み込まれ、「wb.ShowPrintDialog();」を使用して印刷ダイアログが表示されます。[印刷] または [キャンセル] をクリックしたときの [印刷] ダイアログで、アプリケーションに終了 (アプリケーションを閉じるため) を要求する PrintTemplateTeardown イベントを取得しました。
インターネット経由でクライアントのマシンにインストールする際のセキュリティ上の問題により、印刷アプリケーションから「SHDocVw」依存関係を削除したいと考えています。
「SHDocVw」を削除した場合、PrintDialog が閉じていることを知らせる別のイベントまたは解決策はありますか?