StiReport多次打印莫名其妙会有一次打印很慢
1.问题描述:正常StiReport打印标签第一次初始化,电脑性能不好的情况下,可能会超过10秒才能打印出标签。如果是多线程系统可能会更慢。
解决方法:提前初始化和加载标签模板,执行下面一段代码,可以封装类库放在实例化方法中。
report = new StiReport(); report.Load(strPath); report.Dictionary.Synchronize();
2.问题 描述:(多线程)系统打印完一次标签,正常不重新打开,后续打印会在1秒内完成。但是偶尔出现一个现象打印十几次或者几十次不等后,会有一次打印时间超过10几秒。
解决方法:如下,打印方法里面把加载模板注释掉,增加编译模板 Render
//report.Load(strPath); report.Dictionary.Synchronize(); report.RegData(ds); report.Render(); StiPrinterSettings settings = new StiPrinterSettings(); settings.Copies = 1; // 打印份数 settings.PrinterName = PrintName; // 打印机名称 settings.ShowDialog = false; report.PrinterSettings = settings; //直接打印,不显示打印对话框 //report.Print(false, printerSettings); report.Print();