我想打印一个 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。MessageBox 正在显示,然后是打印对话框。我也尝试过使用 Thread.Sleep(1000) 代替,但它不起作用。谁能向我解释这里发生了什么?为什么消息框会有任何不同?
可能是某种许可问题吗?我已经在 Windows 7 和 8 上重现了这个,同样的事情。我只用上面的代码制作了这个小应用程序来隔离问题。我很确定它可以在 Windows XP 上运行,因为我正在处理的应用程序的旧版本在它上面运行。当尝试直接使用 mshtml-dll 执行此操作时,我也会遇到问题。
非常感谢任何输入或澄清!