événement d’impression de fin .net

Je travaille avec la classe PrintDocument en utilisant le code suivant:

printDocument.PrintPage += (s, ev) => { ev.Graphics.DrawImage(bitmap, Point.Empty); ev.HasMorePages = false; }; printDocument.EndPrint += (sender, args) => { var buyerDTO = buyerRow.Buyer; buyerDTO.EnvelopePrinted = true; View.Control.Invoke(new Action(() => View.UpdateBuyer(buyerDTO))); Manager.UpdateBuyer(buyerDTO); ((IDisposable)sender).Dispose(); View.Control.Invoke( new Action(() => View.SetResetPrintStatusEnable(View.CurrentBuyers.Any(buyer => buyer.EnvelopePrinted)))); }; printDocument.Print(); 

Si je comprends bien, l’ événement EndPrint se produit lorsque le document est rendu (et envoyé à l’imprimante), mais pas encore imprimé sur papier.

Je devrais vérifier si le document est réellement imprimé sur du papier. Comment puis-je faire ceci?

Je devrais vérifier si le document est imprimé sur du papier

En général, vous ne pouvez pas obtenir ce que vous voulez avec une imprimante abstraite.

Même si vous surveillez l’état d’un travail d’impression pour une imprimante donnée, à l’aide de l’API du spouleur, vous pouvez exécuter le cas lorsqu’un travail a été envoyé à l’imprimante (le spouleur pense donc qu’il a été imprimé), mais aucune impression n’a été réellement effectuée (par exemple, , le papier est terminé et l’utilisateur a redémarré l’imprimante).