我有一个由五部分组成的文档来创建和打印。每个部分都创建为写入磁盘的单独HTML页面。写入页面后,System.Windows.Forms.WebBrowser将导航到该页面。 Print命令位于DocumentCompleted事件中。
问题是页面以错误的顺序从打印机上掉了下来。因为WebBrowser是可见的,所以我可以在创建页面时看到这些页面,因此我知道它们已经创建并且WebBrowser.Print()以正确的顺序执行。
使用部件之间的Thread.Sleep()减慢过程不会改变行为。
显然有些东西阻止了文档释放到打印机队列,当它们被释放时,它们会以随机顺序出现。
任何想法是什么导致了这个问题以及如何解决它?
//典型步骤
// EOB8_S1写入HTML文档
sLetterFile = esi_path + @"\EOB8_S1.html";
EOB8_S1(sID, dsEob, sLetterFile, dtAsOf, MonthName);
Browser.Navigate(sLetterFile);
while (Browser.ReadyState != WebBrowserReadyState.Complete)
{
System.Windows.Forms.Application.DoEvents();
}
// DocumentCompleted Event
private void Browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (bBrowPrint) Browser.Print();
}