日期:2014-05-18  浏览次数:21222 次

用PrintDocument类做套打,页码多时出现的问题
用PrintDocument类做套打,页码多超过1万有时6,7千条时,总会报:System.Runtime.InteropServices.ExternalException: GDI+ 中发生一般性错误,在调试模式下出现内存不足提示,请教碰到个类似问题的达人指点一二(如果打印的页数少于5千以下没碰到过报错),怎么会耗这么大的内存以至于中断。

其核心画图代码就是 
e.DrawString(PrintValue4, printFont, Brushes.Black, PrintLeft4, PrintTop4);
在自定义页面上打印了4个信息

预览时
dlgPrintPreview.Document = pDocument;
dlgPrintPreview.PrintPreviewControl.Zoom = 1;
dlgPrintPreview.ShowDialog();
生成预览页面

------解决方案--------------------
预览时有1万多页?
你预览时能不能预览少点?打印时1万多页放到线程里打印,再做个进度条显示,及时释放资源
------解决方案--------------------
在调试模式下出现内存不足提示

你说5000页以下不会现这种情况,那可否在打印了5000页后开一个计时器,等一段时间再运行,这样内存就好些了
反正你是放在那打一晚上第二天收的
------解决方案--------------------
写一个服务让它自动打印
------解决方案--------------------
探讨
建议分段打印

------解决方案--------------------
分段打印吧,象DOC等,都是分段打印!打印机内存小嘛!
------解决方案--------------------
NB学习了
我哪会只想到用多台机子进行打印
------解决方案--------------------
学习