首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EndPrint事件System.Drawing.Printing

EndPrint事件System.Drawing.Printing
EN

Stack Overflow用户
提问于 2012-10-02 18:18:41
回答 1查看 621关注 0票数 4

我使用旧的System.Drawing.Printing名称空间中提供的方法进行打印,因为PrintDocument对象提供了一个PrintPage事件,它允许我加载图像并立即处理它。尝试使用FixedDocument打印通常会导致内存不足。

然而,我遇到了一个奇怪的问题-一旦打印应用程序对页面进行了假脱机处理,我就使用EndPrint事件处理程序关闭它。如果我只是调用Close(),我的打印文档有时会出现缺页或打印机输出模糊(超时/语法)错误。

我目前的变通方法是调用Hide(),然后在关闭它之前等待任意的时间(在我的例子中是30秒),这似乎是有效的。

我真的不喜欢这种方法--你怎么知道要等多长时间?难道EndPrint不应该确保最后一页已经假脱机吗?

有没有人想出一个“合适”的修复方法?或者解释到底是怎么回事?

干杯

EN

回答 1

Stack Overflow用户

发布于 2021-08-20 07:54:03

不要使用此事件来捕获打印结束。我已经通过异步打印调用实现了应用程序的正确完成,并通过System.Threading.Tasks.Task类的等待方法等待它完成。

代码语言:javascript
复制
// Start print asynchronously
System.Threading.Tasks.Task PrintTask = new System.Threading.Tasks.Task(new Action(PD.Print));
PrintTask.Start();
// Wait
PrintTask.Wait();
// End of application
System.Environment.Exit(0);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12688496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档