htmlレポートを印刷したいのですが、この特有の問題があります。ファイル自体は、私のハードドライブにある通常のローカルhtmlファイルです。
これを行うために、私は次のことを試みました:
public static void PrintReport(string path)
{
WebBrowser wb = new WebBrowser();
wb.Navigate(path);
wb.ShowPrintDialog()
}
そして、クリックイベントのあるボタンが付いたこのフォームがあります。
private void button1_Click(object sender, EventArgs e)
{
string path = @"D:\MyReport.html";
PrintReport(path);
}
これはまったく何もしません。これはちょっと奇妙なことです...しかし物事は奇妙になります...
印刷機能を編集して次のことを行う場合:
public static void PrintReport(string path)
{
WebBrowser wb = new WebBrowser();
wb.Navigate(path);
MessageBox.Show("TEST");
wb.ShowPrintDialog()
}
できます。はい、MessageBoxを追加するだけです。メッセージボックスが表示され、その後に印刷ダイアログが表示されます。代わりにThread.Sleep(1000)を試してみましたが、これは機能しません。誰かがここで何が起こっているのか私に説明できますか?メッセージボックスが違いを生むのはなぜですか?
ある種の許可の問題でしょうか?私はこれをWindows7と8の両方で再現しました。同じことです。問題を特定するために、上記のコードのみを使用してこの小さなアプリケーションを作成しました。私が取り組んでいる古いバージョンのアプリケーションはWindowsXPで実行されるため、WindowsXPでも動作すると確信しています。代わりにmshtml-dllを使用してこれを直接実行しようとすると、問題が発生します。
任意の入力または説明は大歓迎です!