我使用较旧的System.Drawing.Printing
命名空间中提供的方法进行打印,因为PrintDocument
对象提供了PrintPage
事件,允许我加载图像并立即处理它。尝试使用FixedDocument进行打印通常会导致内存不足。
EndPrint
事件处理程序在假脱机页面后关闭我的打印应用程序。如果我只是打电话给Close()
我的打印文件有时会丢失页面或打印机输出模糊(超时/语法)错误。
我目前的解决方法是一个黑客攻击,包括调用Hide()
然后等待任意数量的时间(在我的情况下为30秒),然后关闭它,这似乎有效。
我真的不喜欢这种方法 - 你怎么知道等待多长时间? EndPrint不能确保最后一页假脱机吗?
任何人都有“正确”修复的想法?或解释发生了什么?
干杯