System.Drawing.Printing
古い名前空間で利用可能なメソッドを使用して印刷しています。これは、PrintDocument
オブジェクトがPrintPage
イメージをロードして即座に破棄できるイベントを提供するためです。FixedDocument を使用して印刷しようとすると、メモリ不足の状態になることがよくありました。
しかし、奇妙な問題EndPrint
に遭遇しました。ページをスプールした後、イベント ハンドラーを使用して印刷アプリケーションを閉じます。印刷ドキュメントを呼び出すとClose()
、ページが欠落したり、プリンターがあいまいな (タイムアウト/構文) エラーを出力したりすることがあります。
Hide()
私が現在持っている回避策は、呼び出してから任意の時間 (私の場合は 30 秒) 待ってから閉じることを含むちょっとしたハックです。これはうまくいくようです。
私はこのアプローチが本当に好きではありません - どのくらい待つべきかをどのように知っていますか? EndPrint は、最後のページがスプールされたことを確認するべきではありませんか?
「適切な」修正のアイデアはありますか?または何が起こっているのか説明しますか?
乾杯