C# 使用Crystal report崩溃应用程序打印多个报告
我有一个WinForms应用程序(.net 4.0,x86)和Crystal Reports(13.0.15)。我想使用Crystal报表打印多个文档(在报表查看器上看不到它们-直接在打印机上) 每次打印48份报告,在第49次打印时,我遇到异常C# 使用Crystal report崩溃应用程序打印多个报告,c#,.net,winforms,crystal-reports,C#,.net,Winforms,Crystal Reports,我有一个WinForms应用程序(.net 4.0,x86)和Crystal Reports(13.0.15)。我想使用Crystal报表打印多个文档(在报表查看器上看不到它们-直接在打印机上) 每次打印48份报告,在第49次打印时,我遇到异常System.ComponentModel.Win32Exception,句柄在开始打印时无效(System.Drawing.Printing.PrintDocument、System.Drawing.Printing.PrintEventArgs) 我尝
System.ComponentModel.Win32Exception,句柄在开始打印时无效(System.Drawing.Printing.PrintDocument、System.Drawing.Printing.PrintEventArgs)
我尝试了另一套文档,但在打印时仍有例外
我试图将PrintJobLimit更改为9000以上,但没有任何帮助
接下来,我尝试在打印后处理报告:
foreach (var document in documents )
{
using (ReportDocument report=GenerateReport(document.id))
{
report.PrintToPrinter(printerSettings, pageSettings, false);
}
}
但现在程序在打印第28次报告之前崩溃,我无法捕获异常(程序停止工作)。只有在事件查看器中才显示有关应用程序错误的信息(出错模块名称:ntdll.dll
)。
我尝试了不同的东西(以及它们的组合):
打印后,即使是GC.Collect()
,但仍然不起作用。
有人有办法吗
foreach (var document in documents )
{
using (ReportDocument report=GenerateReport(document.id))
{
report.PrintToPrinter(printerSettings, pageSettings, false);
}
}
report.Close();
report.Dispose();
report=null;