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();

 

posted @ 2024-05-23 09:11  未风  阅读(51)  评论(0编辑  收藏  举报